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