update
事件
总结
说明
字段 | 类型 | 说明 | |||
---|---|---|---|---|---|
_id | 文档 | 一个 BSON对象,用作变更流事件的标识符。 恢复变更流时,此值用作
有关通过 | |||
clusterTime | 时间戳 | 与事件相关的 oplog 条目中的时间戳。 与多文档事务相关的变更流事件通知都具有相同的 在分片集群上,具有相同 要标识单个事务的事件,您可以在变更流事件文档中结合使用 | |||
documentKey | 文档 | 一个文档,其中包含 CRUD 操作创建或修改的文档的 对于分片集合,此字段还显示文档的完整分片键。如果 | |||
fullDocument | 文档 | CRUD 操作创建或修改的文档。 只有在您配置变更流时将 有关更多信息,请参阅查找更新操作的完整文档。 | |||
lsid | 文档 | 与事务关联的会话标识符。 只有当操作是多文档事务的一部分时才会出现。 | |||
ns | 文档 | 受事件影响的命名空间(数据库和/或集合)。 | |||
ns.coll | 字符串 | 发生事件的集合的名称。 | |||
ns.db | 字符串 | 发生事件的数据库的名称。 | |||
operationType | 字符串 | 变更通知报告的操作类型。 为这些变更事件返回 | |||
updateDescription | 文档 | 一个文档,描述由更新操作更新或删除的字段。 | |||
updateDescription. removedFields | 阵列 | 一个字段数组,包含由更新操作删除的字段。 | |||
updateDescription. truncatedArrays | 阵列 | 一个文档数组,用于记录使用一个或多个以下阶段通过基于管道的更新执行的数组截断: 如果替换了整个数组,则会在updateDescription.updatedFields 下报告截断情况。 | |||
updateDescription. truncatedArrays. field | 字符串 | 截断字段的名称。 | |||
updateDescription. truncatedArrays. newSize | 整型 | 截断数组中的元素数量。 | |||
updateDescription. updatedFields | 文档 | 一个文档,其键对应于由更新操作修改的字段。每个字段的值对应于这些字段的新值,而不是产生新值的操作。 | |||
txnNumber | NumberLong |
例子
以下示例说明了 update
事件:
{ "_id": { <Resume Token> }, "operationType": "update", "clusterTime": <Timestamp>, "ns": { "db": "engineering", "coll": "users" }, "documentKey": { "_id": ObjectId("58a4eb4a30c75625e00d2820") }, "updateDescription": { "updatedFields": { "email": "alice@10gen.com" }, "removedFields": ["phoneNumber"], "truncatedArrays": [ { "field" : "vacation_time", "newSize" : 36 } ] } }
以下示例说明了使用 fullDocument : updateLookup
选项打开的变更流的 update
事件:
{ "_id": { <Resume Token> }, "operationType": "update", "clusterTime": <Timestamp>, "ns": { "db": "engineering", "coll": "users" }, "documentKey": { "_id": ObjectId("58a4eb4a30c75625e00d2820") }, "updateDescription": { "updatedFields": { "email": "alice@10gen.com" }, "removedFields": ["phoneNumber"], "truncatedArrays": [ { "field" : "vacation_time", "newSize" : 36 } ] }, "fullDocument": { "_id": ObjectId("58a4eb4a30c75625e00d2820"), "name": "Alice", "userName": "alice123", "email": "alice@10gen.com", "team": "replication" } }
fullDocument
文档代表已更新文档的最新多数提交版本。fullDocument
文档可能与更新操作时的文档有所不同,这取决于更新操作和文档查找之间发生的交替多数提交操作的数量。