MongoDB 变更流:实时数据监听
使用变更流实时追踪数据库中的插入、更新和删除操作。 · 难度:入门 · +15XP
变更流概述
MongoDB 3.6+ 提供变更流(Change Streams),允许应用实时监听集合、数据库或整个集群的数据变化。
基本用法
const pipeline = [
{ $match: { 'fullDocument.status': 'active' } }
];
const changeStream = collection.watch(pipeline);
changeStream.on('change', (next) => {
console.log('变更类型:', next.operationType);
console.log('文档:', next.fullDocument);
});| 事件类型 | 说明 |
|---|---|
| insert | 插入文档 |
| update | 更新文档 |
| replace | 替换文档 |
| delete | 删除文档 |
过滤与恢复
可以使用 $match 阶段过滤特定操作。变更流还支持恢复令牌(resume token),在断开后从中断处继续监听。
练习提示
启动一个变更流监听 orders 集合,当新订单插入时打印通知。然后在另一个终端插入一条数据,观察输出。