没有项目描述

mongo_observer的Python项目详细描述


Mongo观察员

mongo observer旨在提供异步订阅的简单方法。 声明给定mongo集合上的更改事件。

安装

pip install mongo_observer

用法

观察者

Observer处理给定集合上的状态更改观察 并分派事件,将责任委托给处理程序。

处理程序

处理程序是实现OperationHandler协议的对象 并实现以下抽象方法:

插入时的异步定义(self,操作:dict[str,any])

其中operation是包含与 对oplog的操作。它将包含以下键:

  • ts:操作的时间戳a
  • h:操作的唯一有符号长标识符
  • op:表示操作类型的字符
  • ns:由 '数据库.集合'
  • o:插入的文档

更新时的异步定义(self,操作:dict[str,any])

其中operation是包含与 对oplog的操作。它将包含以下键:

  • ts:操作的时间戳
  • h:操作的唯一有符号长标识符
  • op:表示操作类型的字符
  • ns:由 '数据库.集合'
  • o:对文档执行的操作数据
  • o2:带有要更新的文档的单个id键的dict

删除异步定义(self,操作:dict[str,any])

其中operation是包含与 对oplog的操作。它将包含以下键:

  • ts:操作的时间戳
  • h:操作的唯一有符号长标识符
  • op:表示操作类型的字符
  • ns:由 '数据库.集合'
  • o:删除的文档的带有单个id键的dict

反应收集

ReactiveCollection是只读的、内存中的、非持久的 远程mongo集合的副本。它对引起的状态变化作出反应 通过远程上的写操作(插入、更新和删除) 收藏。

importasynciofrommotor.motor_asyncioimportAsyncIOMotorClientfrommongo_observer.observerimportObserverfrommongo_observer.operation_handlersimportReactiveCollectionasyncdefrun(loop):client=AsyncIOMotorClient('mongodb://127.0.0.1')collection_to_observe=client['your_db']['your_collection']reactive_collection=awaitReactiveCollection.init_async(collection_to_observe)observer=awaitObserver.init_async(oplog=client['local']['oplog.rs'],operation_handler=reactive_collection,namespace_filter='your_db.your_collection')loop.create_task(observer.observe_changes())loop=asyncio.get_event_loop()loop.run_until_complete(run(loop))loop.run_forever()

一旦ReactiveCollection.init_async运行,它将执行初始 与远程集合同步。然后我们将其连接为 ^一个Observer的{tt25}$,我们准备好了 observe_changes到集合的当前状态。

反应部分收集

待办事项

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在应用程序关闭时使用Firebase保持登录   使用jni从java类读取arraylist时c jvm崩溃   在Java/Android中替换字符串中的多个子字符串   来自字符串的Java4子字符串   java多JSSE安全配置   java添加到双链接列表的末尾   java如何将元素从数组随机推入堆栈?   Java中的安卓全局异常处理程序   带有片段和ViewPager的java NullPointerException   javascript在javaservlet中生成动态网页   JFrame的java图标路径   JavaLJava。无法在持久性中解析lang.String类。xml   java中具有两个比较的空安全比较器   java如何用字符串流扩展(解析)路径   java文件。exists()返回true,但返回File。isFile()表示错误