Node.js侦听MongoDB更改
Node.js是否有办法监听MongoDB集合中特定数据的更改,并在发生更改时触发事件?MongoDB显然现在支持触发器和监视,这个答案已经过时了 [原创]我相信您正在寻找一家新的公司Node.js侦听MongoDB更改,mongodb,node.js,watch,listen,Mongodb,Node.js,Watch,Listen,Node.js是否有办法监听MongoDB集合中特定数据的更改,并在发生更改时触发事件?MongoDB显然现在支持触发器和监视,这个答案已经过时了 [原创]我相信您正在寻找一家新的公司 不幸的是,MongoDB还不支持它们,所以我认为您不能直接从数据库中监听更改。您需要设置某种通知系统(如pub/sub),在收藏发生更改时向相关方发出通知。好吧,这是一个老问题,但我一直在努力解决同样的问题。我发现了许多帮助我制定解决方案的花边新闻,并将其作为一个库发布: 这个图书馆是用咖啡脚本写的。下面是一个
不幸的是,MongoDB还不支持它们,所以我认为您不能直接从数据库中监听更改。您需要设置某种通知系统(如pub/sub),在收藏发生更改时向相关方发出通知。好吧,这是一个老问题,但我一直在努力解决同样的问题。我发现了许多帮助我制定解决方案的花边新闻,并将其作为一个库发布: 这个图书馆是用咖啡脚本写的。下面是一个javascript示例,供那些喜欢它的人使用
var MongoWatch = require('mongo-watch'),
watcher = new MongoWatch({parser: 'pretty'});
watcher.watch('test.users', function(event) {
return console.log('something changed:', event);
});
嗯,有点晚了。
但是,如果有人希望通知MongoDB对node.js的更改,那么他们可以使用这个库 这是一个活动库,很容易与nodejs集成。 它使用Mongo的可裁剪游标和封顶集合。
当文档插入MongoDB时,它以发布/订阅方式通知订阅者 查看详细信息。引入了MongoDB 3.6,旨在精确解决此问题 下面是一个例子:
你从哪里写信给MongoDB商店?仅从node.js实例,还是从多个源?嗯。。mongo已连接到node.js,但用户可以直接在mongo中手动更改数据。(比如mongoHub)真的希望触发器可用。他们在上一次Mongosft讨论了它们MongoDB支持
.watch()
方法中有触发器。Stackoverflow需要一种方法来“不接受”您自己接受的答案,这样当情况发生变化时,更好的答案会浮到顶部…您可以分享更多关于watcher.watch(…)
const pipeline = [
{
$project: { documentKey: false }
}
];
const db = client.db("superheroesdb");
const collection = db.collection("superheroes");
const changeStream = collection.watch(pipeline);
// start listen to changes
changeStream.on("change", function (change) {
console.log(change);
});