node.js - 监视 MongoDB 集合上的更新(数据库层上的更新后 Hook )

标签 node.js mongodb mongoose

我的收藏之一正在通过不同的微服务进行更新。更新由 monk 完成。 mongoose 库。

所以我想监控这个集合的更新。另外,我无权访问这些服务,因此我无法在每个服务上添加更新后 Hook ,但我可以访问数据库,在那里我可以做任何我想做的事情。我愿意使用任何 ORM 或库。

So basically - if any update query is triggered from any of the services, my monitoring (hook or something) code should be triggered.

谢谢。

最佳答案

您可以使用 mongodb Change Streams 监听数据更改,查看示例应用 https://gist.github.com/riodw/74a839ab6964bceda8ff799d3ad33442

Mongodb 文档 https://docs.mongodb.com/v3.6/changeStreams/#change-streams

您可以尝试来自 mongoose 的更改流: https://mongoosejs.com/docs/models.html#change-streams

我刚刚尝试过的一个例子,它有效:

let Congress = require("../models/congress");
// change stream
Congress.watch().
on('change', data => console.log('change stream',data));
//

关于node.js - 监视 MongoDB 集合上的更新(数据库层上的更新后 Hook ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59764355/

相关文章:

javascript - 无法从 Mongoose-Node 检索对象

node.js - 如何使用 Mongoose 将查询结果返回给变量

javascript - 试图捕获与代码无关的错误,而是像互联网不工作那样的错误,我将如何去做呢?

java - 如何将 AggregateIterable<Document> 值保存到 mongodB 中的 map ?

Python-eve GET 响应不包含资源内容(除非我指定它的模式)

Mongodb updateMany 属性为其他属性的精确值

javascript - Mongoose 的结果没有分配对象属性

javascript - Node fs.readstream() 输出 <Buffer 3c 3f 78 6d 6c ...> 而不是可读数据

node.js - 在 Heroku 中没有 websockets 的实时 node.js 消息传递应用程序,我是否可以获得相同的功能?

javascript - 根据URL路径创建代理