使用Python有一种方法可以在mongodb中进行插入或更新时监听更改

时间:2012-12-10 20:42:34

标签: python mongodb mod-wsgi pymongo uwsgi

我正在构建一个从mongodb集合中抛出数据的小系统,它已经正常工作但我每次进行更改时都必须重新启动它。 我已经有一个监视器来检测更改并自动重启服务器,但我想用mongodb更改做这样的事情。 我当前正在使用CentOs 5,Nginx,uWsgi& python2.7。

1 个答案:

答案 0 :(得分:3)

我会考虑使用tailable cursors,它们在到达集合的末尾后仍然存在,并且可以阻塞直到有新对象可用。

使用PyMongo,您可以使用Collection.find选项调用tailable=True以启用此行为。这个blog post给出了一些很好的例子。

此外,您可能需要查询数据库的 oplog ,而不仅仅是查询集合,而集合只会提醒您添加到该集合。在数据库中的任何集合上调用的所有插入,更新和删除的集合。请注意,必须为mongo启用复制才能保留oplog。有关oplog和启用复制的信息,请查看此blog post