MongoDB 更改流 : Can I get value before update/delete?

标签 mongodb mysqlbinlog changestream mongodb-oplog

更新操作上的更改流事件仅返回更改的文档,与 oplog 相同。我可以在更新之前获取文档(或一些更新的值)吗?

MySQL 基于行的 binlog 可以使用 full binlog_row_image 来完成此操作。

最佳答案

不,从更改流来看,更新事件如下所示:

{
   _id: { < Resume Token > },
   operationType: 'update',
   clusterTime: <Timestamp>,
   ns: {
      db: 'engineering',
      coll: 'users'
   },
   documentKey: {
      _id: ObjectId("58a4eb4a30c75625e00d2820")
   },
   updateDescription: {
      updatedFields: {
         email: 'alice@10gen.com'
      },
      removedFields: ['phoneNumber']
   }
}

仅显示新值,这与 MySQL 不同,在 MySQL 中您会同时获得之后和之前的值。

关于MongoDB 更改流 : Can I get value before update/delete?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57703023/

相关文章:

运行 rs.initiate() 后 mongodb 副本集错误 "...replSetHeartbeat requires authentication..."

c# - Dictionary<string, object>-to-BsonDocument 转换省略 _t 字段

node.js - 如何实现模型本身的嵌套 - Mongodb & Sails

mysql - Debezium 上参数 database.history 的确切含义是什么?

Linux 中删除 MySQL BinLog

mongodb - 具有多个任务的分布式官方 Mongodb Kafka 源连接器不工作

node.js - Mongodb更改流运行多次(有点): Node app running multiple instances

node.js - Node js错误 "process with a non-zero exit code"

mysql - 第1548章

MongoDB 更改流事件 : replace vs update?