我想获得有关Node.js中MongoDB数据库更改的实时更新.
单个MongoDB更改流几乎立即发送更新通知.但是当我打开多个(10+)流时,数据库写入和通知到达之间会有大量延迟(最多几分钟).
这就是我设置更改流的方式:
let cursor = collection.watch([
{$match: {"fullDocument.room": roomId}},
]);
cursor.stream().on("data", doc => {...});
Run Code Online (Sandbox Code Playgroud)
我尝试了另一种设置流的方法,但它同样慢:
let cursor = collection.aggregate([
{$changeStream: {}},
{$match: {"fullDocument.room": roomId}},
]);
cursor.forEach(doc => {...});
Run Code Online (Sandbox Code Playgroud)
自动化流程将微小文档插入到集合中,同时收集性能数据.
一些额外的细节:
insertMany)两种设置都会产生同样的问题.这可能会发生什么?
mongodb ×1