文档菜单
文档首页
/
MongoDB 手册
/ /

插入

在本页

  • 摘要
  • 描述
  • 示例
插入

当操作向集合中添加文档时,将触发一个 插入 事件。

字段
类型
描述
_id
文档

ABSON 对象,用作更改流事件的标识符。此值用作恢复更改流时 resumeAfter 参数的 resumeToken。此 _id 对象具有以下形式

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

_data 类型取决于 MongoDB 版本以及更改流打开或恢复时的某些情况下的功能兼容版本 (fCV)。有关 _data 类型完整列表,请参阅 恢复令牌

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

clusterTime
时间戳

clusterTime 是与事件相关的 oplog 条目的时间戳。

由于 oplog 大小限制多文档事务可能会创建多个 oplog 条目。在事务中,给定 oplog 条目中安排更改流事件具有相同的 clusterTime

具有相同 clusterTime 的事件可能并不都与同一事务相关。一些事件根本不与任何事务相关。从 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是从与数据库操作事件关联的操作日志条目中获取的时间戳。

版本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文档表示插入时的文档版本。

返回

删除索引