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

变更流事件

变更流监视集合、数据库或部署中是否有更改。

当监视的资源发生更改时,变更流会返回变更事件通知文档,其中包含相关操作以及所做更改的信息。

事件
说明

在创建集合时发生。

需要将 showExpandedEvents 选项设置为 true

6.0版本新增。:

对集合创建索引时出现。

需要将 showExpandedEvents 选项设置为 true

6.0版本新增。:

从集合中删除文档时发生。

从数据库中删除集合时发生。

删除数据库时发生。

从集合中删除索引时发生。

需要将 showExpandedEvents 选项设置为 true

6.0版本新增。:

在一个操作将文档添加到集合时发生。

当操作使变更流无效时发生此事件。

修改集合时出现。

需要将 showExpandedEvents 选项设置为 true

6.0版本新增。:

修改分片键时发生。

6.1版本新增。:

重命名集合时发生。

当更新操作从集合中删除文档并将其替换为新文档时发生此事件。

当集合的分片键和数据分布发生变化时发生此事件。

需要将 showExpandedEvents 选项设置为 true

6.16.0.14版本中的新增功能(在 中也可用):

对集合进行分片时发生。

需要将 showExpandedEvents 选项设置为 true

6.0版本新增。:

当一个操作更新集合中的文档时发生。

注意

当“替换”表示形式更为简洁时,服务器可能会将更新操作作为替换事件返回。如果您监听更新操作,也应同时监听替换操作。

每个变更事件都包含一个 _id字段,该字段是一个BSON对象,用作变更流事件的标识符。有关通过 resumeToken 恢复变更流的示例,请参阅恢复变更流。

6.0版本新增。:

变更流支持数据定义语言 (DDL) 事件通知,例如 createIndexesdropIndexes。如需包含扩展事件,请在打开变更流游标时使用 showExpandedEvents 选项。

例如:

let cur = db.names.watch( [ ], {
showExpandedEvents: true
} )
cur.next()
let cur = db.names.aggregate( [ {
$changeStream: {
showExpandedEvents: true
}
}
] )
cur.next()