Docs 菜单

insert

在此页面上

insert

当操作将文档添加到集合时,会发生insert事件。

字段
类型
说明

_id

文档

一个 BSON对象,用作变更流事件的标识符。 恢复变更流时,此值用作resumeAfter参数的resumeToken_id对象具有以下形式:

{
"_data" : <BinData|hex string>
}

_data 类型取决于 MongoDB 版本,在某些情况下,还取决于变更流打开或恢复时的特征兼容性版本 (fCV)。有关 _data 类型的完整列表,请参阅恢复令牌

有关通过 resumeToken 恢复变更流的示例,请参阅恢复变更流

clusterTime

时间戳

clusterTime 是来自与该事件关联的oplog条目的时间戳。

由于oplog大小限制,多文档事务可能会创建多个oplog条目。在ACID 事务中,给定oplog条目中暂存的变更流事件股票相同的 clusterTime

具有相同clusterTime的事件可能并不都与同一ACID 事务相关。 有些事件与ACID 事务完全无关。 从MongoDB 8.0开始,任何部署上的事件都可能如此。 在以前的版本中,这种行为只适用于分分片集群上的事件。

要标识单个事务的事件,您可以在变更流事件文档中结合使用 lsidtxnNumber

在版本8.0中进行了更改

collectionUUID

UUID

标识发生更改的集合的 UUID

6.0 版本中的新功能

documentKey

文档

一个文档,其中包含 CRUD 操作创建或修改的文档的 _id 值。

对于分片集合,此字段还显示文档的完整分片键。如果 _id 字段已经是分片键的一部分,则该字段不会重复。

fullDocument

文档

该操作创建的文档。

在 6.0 版本中进行了更改

从 MongoDB 6.0 开始,如果您使用 db.createCollection()createcollMod 设置 changeStreamPreAndPostImages 选项,则 fullDocument 字段会在插入、替换或更新文档后显示文档(文档后像)。insert 事件总是包括 fullDocument

lsid

文档

与事务关联的会话标识符。

只有当操作是多文档事务的一部分时才会出现。

ns

文档

受事件影响的命名空间(数据库和/或集合)。

ns.coll

字符串

发生事件的集合的名称。

ns.db

字符串

发生事件的数据库的名称。

operationType

字符串

变更通知报告的操作类型。

为这些变更事件返回 insert 值。

txnNumber

NumberLong

lsid 一起使用的数字,有助于唯一标识事务。

只有当操作是多文档事务的一部分时才会出现。

wallTime

数据库操作的服务器日期和时间。wallTimeclusterTime 的不同之处在于,clusterTime 是从与数据库操作事件相关的 oplog 条目中提取的时间戳。

6.0 版本中的新功能

以下示例说明了 insert 事件:

{
"_id": { <Resume Token> },
"operationType": "insert",
"clusterTime": <Timestamp>,
"wallTime": <ISODate>,
"ns": {
"db": "engineering",
"coll": "users"
},
"documentKey": {
"userName": "alice123",
"_id": ObjectId("599af247bb69cd89961c986d")
},
"fullDocument": {
"_id": ObjectId("599af247bb69cd89961c986d"),
"userName": "alice123",
"name": "Alice"
}
}

documentKey字段包括_iduserName字段。 这表示engineering.users集合已分片,分片键位于userName_id上。

fullDocument文档表示插入时的文档版本。

在此页面上