更改事件
更改流监视集合、数据库或部署以进行更改。
当监视的资源发生更改时,更改流返回一个更改事件通知文档,其中包含有关操作及其所做的更改的信息。
操作类型
事件 | 描述 |
---|---|
当从集合中删除文档时发生。 | |
当从数据库中删除集合时发生。 | |
当删除数据库时发生。 | |
当操作向集合中添加文档时发生。 | |
当操作使更改流无效时发生。 | |
当修改分片键时发生。 新版本6.1. | |
当重命名集合时发生。 | |
当更新操作从一个集合中删除文档并用新文档替换时发生。 | |
当操作更新集合中的文档时发生。 |
恢复令牌
每个更改事件都包含一个包含文档的 _id
字段。此文档可以用作启动更改流时的恢复令牌。
扩展事件
新版本6.0.
从MongoDB 6.0版本开始,更改流支持DDL事件(如创建索引和删除索引事件)的更改通知。要在一个更改流中包含扩展事件,请使用showExpandedEvents
选项创建更改流游标。
例如
let cur = db.names.aggregate( [ { $changeStream: { showExpandedEvents: true } } ] ) cur.next()