وظائف Count() & Remove() في MongoDB مع المثال
⚡ ملخص ذكي
الدالتان Count() و Remove() في MongoDB يمكنك من خلال هذه الطريقة عرض عدد المستندات الموجودة في مجموعة وحذف المستندات منها. تُعيد الدالة count() إجمالي عدد المستندات، بينما تحذف الدالة remove() جميع المستندات أو فقط تلك التي تُطابق شرطًا مُحددًا.

MongoDB وظيفة العد ().
مفهوم التجميع هو إجراء عملية حسابية على النتائج التي يتم إرجاعها في الاستعلام. على سبيل المثال، لنفترض أنك تريد معرفة عدد المستندات في مجموعة وفقًا للاستعلام الذي تم تشغيله، إذن MongoDB يوفر وظيفة العد ().
مثال MongoDB وظيفة العد ().
دعونا نلقي نظرة على مثال على ذلك.
db.Employee.count()
Code التفسير:
- الكود أعلاه ينفذ وظيفة العد.
إذا تم تنفيذ الأمر بنجاح، سيتم عرض الناتج التالي
الإخراج:
يُظهر الإخراج بوضوح وجود 4 مستندات في المجموعة.
MongoDB العد باستخدام شرط الاستعلام
تُعدّ دالة count() مفيدةً للغاية عند تمرير شرط استعلام، حيث تحسب فقط المستندات المطابقة بدلاً من المجموعة بأكملها. وهذا مفيدٌ للتقارير، مثل عدد الموظفين في قسمٍ ما أو عدد الطلبات التي لا تزال مفتوحة.
يوضح المثال التالي عدد الموظفين الذين يكون رقم تعريفهم الوظيفي (Employeeid) أكبر من 2:
db.Employee.count({Employeeid:{$gt:2}})
هذا ما يحدث:
- يعمل كائن الاستعلام {Employeeid:{$gt:2}} كعامل تصفية، باستخدام عامل التشغيل $gt (أكبر من).
- تقوم الدالة count() بإرجاع عدد المستندات التي تستوفي معايير التصفية فقط.
- يتم تجاهل باقي المجموعة في المجموع الكلي.
في التيار MongoDB في الإصدارات السابقة، تُعدّ دالة countDocuments() الطريقة المُوصى بها لإجراء عدّ مشروط، لأنها تُعيد دائمًا نتيجة دقيقة. ويمكن استخدام نفس الاستعلام معها.
db.Employee.countDocuments({Employeeid:{$gt:2}})
يُعيد كلا الأمرين رقمًا واحدًا، يمكنك تخزينه في متغير أو عرضه مباشرةً. يُسهم إضافة فهرس مطابق على الحقل المُستعلم عنه في تسريع عمليات العد الشرطي على المجموعات الكبيرة.
إجراء التعديلات
الفئتان الأخريان من العمليات في MongoDB هي التحديث وإزالة البيانات.
تسمح عمليات التحديث بتعديل البيانات الموجودة، وتسمح عمليات الإزالة بحذف البيانات من المجموعة.
وظيفة إزالة () في MongoDB
In MongoDBأطلقت حملة db.collection.remove() يتم استخدام الطريقة لإزالة المستندات من المجموعة. يمكن إزالة جميع المستندات من المجموعة أو فقط تلك التي تطابق شرطًا معينًا.
إذا قمت فقط بإصدار أمر الإزالة، فستتم إزالة جميع المستندات من المجموعة.
مثال MongoDB وظيفة الإزالة ().
يوضح مثال الكود التالي كيفية إزالة مستند معين من المجموعة.
db.Employee.remove({Employeeid:22})
Code التفسير:
- يستخدم الكود أعلاه وظيفة الإزالة ويحدد المعايير التي تتمثل في هذه الحالة في إزالة المستندات التي تحتوي على معرف الموظف كـ 22.
إذا تم تنفيذ الأمر بنجاح، سيتم عرض الناتج التالي
الإخراج:
ستظهر النتيجة أنه تمت إزالة مستند واحد.
حذف جميع المستندات مقابل حذف مستند واحد
يمكن للدالة remove() حذف جميع المستندات المطابقة أو مستند واحد فقط، وذلك بحسب الوسائط التي تُمررها. إن فهم الفرق بينهما يمنع فقدان البيانات عن طريق الخطأ.
لإزالة جميع المستندات في مجموعة، مرر شرطًا فارغًا:
db.Employee.remove({})
يؤدي هذا إلى حذف جميع المستندات مع الاحتفاظ بالمجموعة نفسها. لحذف المستندات التي تطابق شرطًا معينًا فقط، مرر كائن استعلام، كما هو موضح سابقًا مع {Employeeid:22}. إذا تطابقت عدة مستندات وتريد حذف المستند الأول فقط، فأضف الخيار justOne.
db.Employee.remove({EmployeeName:"Smith"}, {justOne:true})
الاختلافات الرئيسية هي:
- يؤدي الأمر remove({}) إلى حذف جميع المستندات في المجموعة.
- تقوم الدالة remove({condition}) بحذف كل مستند يطابق الشرط.
- remove({condition}, {justOne:true}) يحذف المستند الأول المطابق فقط.
تحقق دائمًا من الشرط جيدًا قبل تنفيذ أمر الحذف، لأن عامل التصفية الفارغ أو الخاطئ قد يؤدي إلى مسح المجموعة بأكملها. في الأنظمة الحديثة MongoDB، تقوم الدالتان deleteOne() و deleteMany() باستبدال هذه الأنماط وتجعلان الغرض أكثر وضوحًا.
بدائل حديثة للدالتين count() و remove()
كلتا الدالتين count() و remove() هما دالتان قديمتان. أما الدالتان الأحدث فهما MongoDB يُصنّف السائقون هذه الطرق على أنها مهملة ويُقدّمون بدائل أوضح. يوضح الجدول أدناه العلاقة بين كل طريقة قديمة وما يُقابلها من طرق حديثة:
| الطريقة القديمة | الاستبدال الحديث | الهدف |
|---|---|---|
| عدد() | countDocuments() | يُرجع عددًا دقيقًا للمستندات المطابقة |
| عدد() | عدد المستندات المقدرة() | يُعيد عددًا تقريبيًا وسريعًا لجميع المستندات |
| إزالة() | حذف واحد () | يحذف أول مستند يطابق عامل التصفية |
| إزالة() | حذف العديد من | يحذف كل مستند يطابق الفلتر |
بالنسبة للتطبيقات الجديدة، يُفضّل استخدام هذه الطرق الحديثة. فهي تفصل بين عدّ المستندات وتقدير عددها، وبين حذف مستند واحد وحذف عدة مستندات، مما يجعل الاستعلامات أكثر أمانًا وأسهل قراءةً. ولا تزال الدالتان القديمتان count() و remove() تعملان مع البرامج التعليمية والنصوص البرمجية القديمة.


