NodeJS 和 MongoDB:有没有办法监听集合并在集合有新文档时调用回调?

Posted

技术标签:

【中文标题】NodeJS 和 MongoDB:有没有办法监听集合并在集合有新文档时调用回调?【英文标题】:NodeJS and MongoDB: Is there a way to listen to a collection and have an callback be called when a collection has new document? 【发布时间】:2012-02-06 13:39:14 【问题描述】:

有没有办法监听 MongoDB 集合并在集合有新文档时触发回调?

【问题讨论】:

【参考方案1】:

看起来还没有办法。在“触发器”JIRA中有很多关于相关主题的讨论: https://jira.mongodb.org/browse/SERVER-124

您可以通过使用时间戳或计数进行轮询来解决此问题,但事件回调显然会更好。

【讨论】:

呃,sux。所以我唯一的方法是真正做一个插入到节点的权利。因为当我插入时,我可以传入一个回调,当插入返回时将被调用? 我不确定你到底想做什么,但这是一种回调的方式。你能提供更多细节吗?【参考方案2】:

没有来自数据库的任何主动推送,但您可以挂接到复制。

假设您有一个replica set(您不会运行单个 mongod,对吗?)。

每个更改都会写入主服务器上的oplog,然后复制到辅助服务器。

您可以使用 tailable cursors 从 oplog 中高效地提取新更改(插入和更新)。请注意,这仍然是拉,而不是推。

【讨论】:

以上是关于NodeJS 和 MongoDB:有没有办法监听集合并在集合有新文档时调用回调?的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb副本集存储回收

在nodejs中使用socket.io和net socket

nodejs实践-MongoDB

nodejs怎样接受接受指定客户端连接

关于NodeJs为啥要用mongoose操作mongodb

MongoDB 触发器,监听库/表变更记录