دوره‌ها / MongoDB / Change Streams (Change Streams)

Change Streams (Change Streams)

15 دقیقه Article

Change Streams: نظارت بر تغییرات 👁️

Change Streams برای نظارت بر تغییرات در real-time استفاده می‌شوند. این به شما امکان می‌دهد به محض تغییر در collection، database یا deployment، مطلع شوید.

چرا Change Streams؟

  • Real-time notifications از تغییرات
  • برای event-driven architectures
  • برای cache invalidation
  • برای audit logging
  • برای real-time analytics

مثال در Node.js:

const { MongoClient } = require('mongodb');

const client = new MongoClient(uri);
await client.connect();

const collection = client.db('mydb').collection('users');

// نظارت بر تغییرات
const changeStream = collection.watch();

changeStream.on('change', (change) => {{
  console.log('Change detected:', change);
  
  if (change.operationType === 'insert') {{
    console.log('New document:', change.fullDocument);
  }} else if (change.operationType === 'update') {{
    console.log('Updated document:', change.documentKey);
  }} else if (change.operationType === 'delete') {{
    console.log('Deleted document:', change.documentKey);
  }}
}});

// فیلتر کردن تغییرات
const filteredStream = collection.watch([
  {{
    $match: {{
      'fullDocument.status': 'active'
    }}
  }}
]);

انواع تغییرات:

  • insert: document جدید اضافه شده
  • update: document به‌روزرسانی شده
  • replace: document جایگزین شده
  • delete: document حذف شده
  • invalidate: change stream باطل شده
💡 نکته: Change Streams فقط در replica sets و sharded clusters کار می‌کنند. برای standalone instances کار نمی‌کنند. این feature برای real-time applications، microservices و event-driven architectures عالی است.
✅ یاد گرفتید: Change Streams برای نظارت real-time بر تغییرات و ساخت event-driven applications استفاده می‌شوند!

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.

برای ذخیره پیشرفت وارد شوید