对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

插入事件

insert

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

字段
类型
说明

_id

文档

一个BSON对象,用作变更流事件的标识符。恢复变更流时,此值用作 resumeAfter 参数的 resumeToken。_id对象中的字段取决于MongoDB版本,在某些情况下,还取决于变更流打开或恢复时的特征兼容性版本(FCV)。

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

clusterTime

时间戳

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

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

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

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

在版本8.0中进行了更改。

collectionUUID

UUID

标识发生更改的集合的 UUID。

6.0版本新增。

仅当在创建变更流时将 showExpandedEvents字段设立为 true 时,才会包含 collectionUUID字段。有关详细信息,请参阅 showExpandedEvents。

documentKey

文档

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

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

要将此字段用作查询过滤,请参阅使用 documentKey 作为查询筛选器。

fullDocument

文档

该操作创建的文档。

在版本6.0中进行了更改。

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

lsid

文档

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

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

ns

文档

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

ns.coll

字符串

发生事件的集合的名称。

ns.db

字符串

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

operationType

字符串

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

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

txnNumber

NumberLong

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

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

wallTime

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

6.0版本新增。

update 命令可以根据它对集合所做的实际更改生成不同的更改事件(而不仅仅是 update)。

ChangeEvent
说明

更新操作修改了现有文档。

更新操作替换了文档或生成了比原始文档更详细的差异,从而导致MongoDB替换了该文档。

更新操作尝试更新不存在的文档,而是将该文档添加到集合中。仅当更新在启用 upsert 选项的情况下运行时才会出现这种情况。

以下示例说明了 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字段包括_id和userName字段。 这表示engineering.users集合已分片,分片键位于userName和_id上。

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

给本页内容打分