countDocuments()
عدّ المستندات المطابقة countDocuments()
countDocuments() ترجع العدد الدقيق للمستندات المطابقة لفلتر، عبر تنفيذ فعلي بدل الاعتماد على بيانات وصفية مخزَّنة.
الخيار الموصى به رسميًّا لعدّ المستندات، بديل عن count() القديمة. لأنها تُنفَّذ كعدّ فعلي (وليس قراءة metadata)، فهي أدق في البيئات الموزّعة (sharded)، لكنها أبطأ قليلًا على مجموعات ضخمة بلا فلتر.
الصياغة
db.collection.countDocuments(<filter>, { limit, skip })📄 مثال
db.orders.countDocuments({ status: "مكتمل" })
// عدّ الكل (احذر على مجموعات ضخمة — فحص كامل)
db.orders.countDocuments({})أهم المعاملات
| المعامل | الوظيفة |
|---|---|
| filter | شرط المطابقة |
| limit / skip | لتحديد نطاق العدّ (اختياري) |
💡 نصائح عملية
- لتقدير سريع وغير دقيق تمامًا لعدد كل المستندات بلا فلتر، estimatedDocumentCount() أسرع لأنها تقرأ من metadata الفهرس
⚠️ أخطاء شائعة
- استخدام countDocuments({}) بلا فلتر على مجموعة ضخمة جدًّا — يسبّب فحصًا كاملًا (collection scan) بطيئًا
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار MONGODB الكامل بالعربي.
📚 للتعمق التقني الكامل بالإنجليزية: MDN Web Docs