replace
事件
总结
replace
当更新操作从集合中删除文档并将其替换为新文档时(例如调用
replaceOne
方法时),会发生replace
事件。
说明
字段 | 类型 | 说明 | |||
---|---|---|---|---|---|
_id | 文档 | 一个 BSON 对象,用作变更流事件的标识符。恢复变更流时,此值用作
有关通过 | |||
clusterTime | 时间戳 | 与事件相关的 oplog 条目中的时间戳。 与多文档事务相关的变更流事件通知都具有相同的 在分片集群上,具有相同 要标识单个事务的事件,您可以在变更流事件文档中结合使用 | |||
documentKey | 文档 | 一个文档,其中包含 CRUD 操作创建或修改的文档的 对于分片集合,此字段还显示文档的完整分片键。如果 | |||
fullDocument | 文档 | 该操作创建的新文档。 | |||
lsid | 文档 | 与事务关联的会话标识符。 只有当操作是多文档事务的一部分时才会出现。 | |||
ns | 文档 | 受事件影响的命名空间(数据库和/或集合)。 | |||
ns.coll | 字符串 | 发生事件的集合的名称。 | |||
ns.db | 字符串 | 发生事件的数据库的名称。 | |||
operationType | 字符串 | 变更通知报告的操作类型。 为这些变更事件返回 | |||
txnNumber | NumberLong |
举例
以下示例说明了 replace
事件:
{ "_id": { <Resume Token> }, "operationType": "replace", "clusterTime": <Timestamp>, "ns": { "db": "engineering", "coll": "users" }, "documentKey": { "_id": ObjectId("599af247bb69cd89961c986d") }, "fullDocument": { "_id": ObjectId("599af247bb69cd89961c986d"), "userName": "alice123", "name": "Alice" } }
replace
操作使用更新命令,并由两个阶段组成:
删除原始文档,方法是使用
documentKey
和使用相同的方法插入新文档
documentKey
replace
事件的fullDocument
表示插入替换文档后的文档。