MongoDB 更改流:我可以在 update/delete 之前获得价值吗?
MongoDB Change Stream: Can I get value before update/delete?
更新操作上的更改流事件只是 return 更改为的文档,与 oplog 相同。我可以在更新前获取文档(或一些更新值)吗?
MySQL 基于行的 binlog 可以用 full binlog_row_image.
在 findAndModify 命令中,您可以选择指定 (new : true/false) return 文档的新版本 (true) 还是原始版本 (false,这是默认)
不,从更改流来看,更新事件类似于:
{
_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 不同,您可以同时获得之前和之后的值。
更新操作上的更改流事件只是 return 更改为的文档,与 oplog 相同。我可以在更新前获取文档(或一些更新值)吗?
MySQL 基于行的 binlog 可以用 full binlog_row_image.
在 findAndModify 命令中,您可以选择指定 (new : true/false) return 文档的新版本 (true) 还是原始版本 (false,这是默认)
不,从更改流来看,更新事件类似于:
{
_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 不同,您可以同时获得之前和之后的值。