Change Streams (Change Streams)
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 استفاده میشوند!
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.