0

我想设置 MongoDB Stitch 与我的 Python 脚本的连接,并触发数据库事件的触发器以执行 Python 函数。

我看过这篇文章,它显示了与 python 脚本缝合的连接。我找不到如何在 python中执行这种类型的 JavaScript 导入。

我希望如果在我的数据库中删除了已知集合的 TTL 索引文档,那么 MongoDB 将触发我的 Python 脚本并在我的 Python 脚本中执行一个函数。我怎样才能做到这一点?

4

1 回答 1

0

MongoDB Stitch Triggers侦听配置类型的应用程序事件,每个事件都与特定的 Stitch 函数链接。该函数是 Stitch 托管函数,目前 MongoDB Stitch函数只能用 JavaScript (ES6+) 编写。因此,目前没有办法为 Stitch 触发器编写 Python 函数。根据您要执行的操作,如果足够简单,我建议将 Python 逻辑转换为 JavaScript。

根据您的要求和用例,您还可以尝试几种解决方法:

  1. 使用pymongo.change_stream打开MongoDB ChangeStreams以观察集合、数据库或整个集群的变化。Stitch 触发器也使用 MongoDB ChangeStream 作为底层机制。这里的不同之处在于执行不是在 Stitch 服务器中,而是在您的应用程序服务器上。例如:

    pipeline = [{'$match': {'operationType': 'insert'}}]
    with db.collection.watch(pipeline) as stream:
        for insert_change in stream:
            # Trigger something based on an insert of a document 
            print(insert_change)
    
  2. 为调用您自己的应用程序 Web 服务器的触发器编写一个简单的 Stitch 函数(在 JavaScript 中)。例如,编写一个接受 REST API 端点的 Python Flask Web 服务器,https://your.custom.server.com/api/v1/insert?event=101然后执行您的 Python 函数。在这里,您将 changestream watch 委托给 Stitch,但有一个服务器等待来自 Stitch 的传入呼叫。

于 2019-09-07T05:56:10.240 回答