watch() (مراقبة تغييرات المجموعة)

آخر تحديث: 2026-10-09

watch() (مراقبة تغييرات المجموعة)

تراقب watch() مجموعة بحثًا عن التغييرات وتُعيد تدفق تغييرات (Change Stream)، مثل `db.users.watch([{ $match: { 'operationType': 'insert' } }])`. كل إدراج أو تحديث أو حذف أو استبدال يصدر حدث تغيير. تتطلب مجموعة نسخ متماثلة أو عنقودًا مجزّأ — الخوادم المفردة لا تدعمها. من الاستخدامات النمطية: المزامنة اللحظية، وإبطال الذاكرة المخبأة، وتدقيق السجلات.

الفئةالفهرس والإدارة
إصدار MongoDB1.0+
لغة المثالmongosh (الطرفية)

📝 الصيغة

db.<collection>.watch(<pipeline>, { fullDocument: 'updateLookup' })

⚙️ المعلمات

مصفوفة المراحلاختياري. خط أنابيب تجميع يرشّح أحداث التغيير.
fullDocumentاختياري. ‏'updateLookup' يُرفق المستند الكامل بأحداث التحديث.

القيمة المرجعة:مؤشر Change Stream للتكرار عليه أو الاستماع إليه.

▶ مثال

نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):

// watch: الاستماع إلى عمليات الإدراج في users
const stream = db.users.watch([
  { $match: { 'operationType': 'insert' } }
])
stream.forEach(ev => print('New user: ' + ev.fullDocument.name))

المخرجات:

New user: Alice
New user: Bob

📌 ملاحظات

📚 دروس ذات صلة

❓ الأسئلة الشائعة

Qهل تعمل watch على MongoDB مفرد؟
Aلا — تحتاج watch() إلى مجموعة نسخ متماثلة أو عنقود مجزّأ؛ ترفع خطأً على النشر المفرد.
Qهل يمكن أن تستمع watch إلى عمليات الإدراج فقط؟
Aنعم — صفِّ بخط أنابيب: db.users.watch([{$match: {'operationType': 'insert'}}]).
Qما حالات الاستخدام النمطية لـ watch()؟
Aالمزامنة اللحظية، وإبطال الذاكرة المخبأة، وتدقيق السجلات، والتدفقات المبنية على الأحداث التي يجب أن تتفاعل مع تغييرات البيانات.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%