⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

MongoDB变更流监听

使用变更流实时追踪数据库中的数据变化。 · 难度:入门 · +15XP

变更流 (Change Streams)

变更流允许应用订阅数据库的实时变化事件(插入、更新、删除、替换)。基于 oplog 实现,从 MongoDB 3.6 开始支持。

使用场景

API 基础

const changeStream = collection.watch([], { fullDocument: 'updateLookup' });
changeStream.on('change', (next) => {
  console.log('变更类型:', next.operationType);
  console.log('文档:', next.fullDocument);
});

示例:监听用户集合

const { MongoClient } = require('mongodb');
async function watchChanges() {
  const client = new MongoClient('mongodb://localhost:27017');
  await client.connect();
  const db = client.db('test');
  const users = db.collection('users');
  const changeStream = users.watch([], { fullDocument: 'updateLookup' });
  changeStream.on('change', (change) => {
    if (change.operationType === 'insert') {
      console.log('新用户:', change.fullDocument);
    } else if (change.operationType === 'update') {
      console.log('用户更新:', change.updateDescription);
    }
  });
  // 保持连接
  setTimeout(() => changeStream.close(), 60000);
}
watchChanges().catch(console.error);

表格:事件类型

operationType触发操作
insert插入文档
update更新文档
delete删除文档
replace替换文档

练习提示: 启动变更流监听,在另一个终端插入数据,观察事件输出。尝试过滤特定操作类型。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 83 篇
0 完成
🔥 0