【发布时间】:2020-09-15 23:52:18
【问题描述】:
我想对 mongo 集合进行查询,当集合更改时,我想再次运行查询。但是为了优化它,我不想在每次集合更改时运行查询,只有在匹配查询的文档发生更改时才运行查询。我有以下代码:
const query = { author: someUserID };
const fetch = async () => await collection.find(query).toArray();
const watcher = collection
.watch([{ $match: { fullDocument: query } }])
.on("change", () => fetch().then(sendData)); // This does not work
fetch().then(sendData); // This works
在第一次运行时,它会获取文档并执行sendData,但是当插入新文档时,不会触发该事件。当我在没有参数的情况下赢得collection.watch() 时,它会起作用。
问题出在哪里? 谢谢。
编辑:我希望能够将query 重用于.find() 和.watch()。
【问题讨论】:
标签: node.js mongodb changestream