python - mongodb = 触发器 => python

标签 python mongodb triggers real-time

我目前正在构建一个管道,每次插入新文档时都会从 MongoDB 读取数据,并在经过一些预处理后将其发送到外部数据源。预处理并将数据发送到外部数据源部分按照我的设计方式运行良好。

问题是,我无法从 MongoDB 读取数据。我正在尝试构建一个触发器,当某些 MongoDB 集合更新时,它会从 MongoDB 读取数据,然后将其发送到 python。我不考虑轮询 MongoDB,因为它太占用资源。

我找到了这个库 mongotriggers( https://github.com/drorasaf/mongotriggers/ ),现在来看看它。


总之,如何构建一个触发器,当新文档插入到特定集合时,将数据从 MongoDB 发送到 python?

如有任何评论或反馈,我们将不胜感激。

提前致谢。

最佳

哎呀

最佳答案

在 MongoDB v3.6+ 中,您现在可以使用 MongoDB Change Streams 。更改流允许应用程序访问实时数据更改,而不会产生跟踪操作日志的复杂性和风险。应用程序可以使用更改流来订阅单个集合、数据库或整个部署上的所有数据更改,并立即对它们使用react。

例如,在插入新文档时监听来自 MongoDB 的流:

try:
    with db.collection.watch([{'$match': {'operationType': 'insert'}}]) as stream:
        for insert_change in stream:
            # Do something
            print(insert_change)
except pymongo.errors.PyMongoError:
    # The ChangeStream encountered an unrecoverable error or the
    # resume attempt failed to recreate the cursor.
    logging.error('...')

pymongo.collection.Collection.watch()从 PyMongo 3.6.0+ 开始可用。

关于python - mongodb = 触发器 => python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44064158/

相关文章:

python - Keras 图像数据生成器 : how to use data augmentation with images paths

mongodb - 在 MongoDB 中使用 $near 运算符反转距离顺序

postgresql - 如何在从表中删除时创建触发器以删除相应的 View ?

带触发器的 Mysql 克隆 id

postgresql - 如何将记录传递给 PL/pgSQL 函数?

python - 在整个数据集上训练时结果更糟

c# - 将 Python SocketServer 与 C# 客户端连接

python - 我可以使用 python 're' 来解析复杂的人名吗?

java - 哪些工具可用于将测试数据填充到 mongodb

node.js - 同步机制在本地计算机上运行良好,但会删除 Heroku 上的所有视频