我想设置 MongoDB Stitch 与我的 Python 脚本的连接,并触发数据库事件的触发器以执行 Python 函数。
我看过这篇文章,它显示了与 python 脚本缝合的连接。我找不到如何在 python中执行这种类型的 JavaScript 导入。
我希望如果在我的数据库中删除了已知集合的 TTL 索引文档,那么 MongoDB 将触发我的 Python 脚本并在我的 Python 脚本中执行一个函数。我怎样才能做到这一点?
我想设置 MongoDB Stitch 与我的 Python 脚本的连接,并触发数据库事件的触发器以执行 Python 函数。
我看过这篇文章,它显示了与 python 脚本缝合的连接。我找不到如何在 python中执行这种类型的 JavaScript 导入。
我希望如果在我的数据库中删除了已知集合的 TTL 索引文档,那么 MongoDB 将触发我的 Python 脚本并在我的 Python 脚本中执行一个函数。我怎样才能做到这一点?
MongoDB Stitch Triggers侦听配置类型的应用程序事件,每个事件都与特定的 Stitch 函数链接。该函数是 Stitch 托管函数,目前 MongoDB Stitch函数只能用 JavaScript (ES6+) 编写。因此,目前没有办法为 Stitch 触发器编写 Python 函数。根据您要执行的操作,如果足够简单,我建议将 Python 逻辑转换为 JavaScript。
根据您的要求和用例,您还可以尝试几种解决方法:
使用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)
为调用您自己的应用程序 Web 服务器的触发器编写一个简单的 Stitch 函数(在 JavaScript 中)。例如,编写一个接受 REST API 端点的 Python Flask Web 服务器,https://your.custom.server.com/api/v1/insert?event=101
然后执行您的 Python 函数。在这里,您将 changestream watch 委托给 Stitch,但有一个服务器等待来自 Stitch 的传入呼叫。