deleteMany() (حذف مستندات متعددة)

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

deleteMany() (حذف مستندات متعددة)

تحذف deleteMany() كل مستند يطابق مرشحًا وتُعيد deletedCount. وهي أداة العمل للتنظيف الجماعي مثل مسح السجلات القديمة أو إلغاء تفعيل المستخدمين. تحذير: مرشح فارغ {} يفرّغ المجموعة بأكملها، فتحقق من المرشح قبل التشغيل. الحذف لا رجعة فيه — للعمليات الخطرة، قِس الأثر أولًا بـ `db.users.countDocuments({ status: 'expired' })`.

الفئةالكتابة
إصدار MongoDB1.0+
لغة المثالmongosh (الطرفية)

📝 الصيغة

db.<collection>.deleteMany(<filter>, { writeConcern: <options> })

⚙️ المعلمات

شرط التصفيةشرط يطابق المستندات المراد حذفها؛ ‏{} الفارغ يحذف الكل.
writeConcernاختياري. ضمان الكتابة (write concern).

القيمة المرجعة:‏DeleteResult: { acknowledged, deletedCount }.

▶ مثال

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

// deleteMany: حذف كل مستخدم دون 18 عامًا
db.users.deleteMany({ age: { $lt: 18 } })

المخرجات:

{ acknowledged: true, deletedCount: 5 }

📌 ملاحظات

📚 دروس ذات صلة

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

Qماذا يحدث إذا تلقت deleteMany مرشحًا فارغًا؟
Aالمرشح الفارغ {} يطابق كل شيء ويحذف المجموعة بأكملها — تجنب ذلك عن طريق الخطأ.
Qما الفرق بين deleteMany و drop؟
Aتحذف deleteMany() المستندات لكنها تُبقي المجموعة والفهارس؛ بينما تحذف drop() المجموعة نفسها بما فيها الفهارس والبيانات الوصفية.
Qكيف أعرف كم مستندًا حذفته deleteMany؟
Aاقرأ deletedCount من النتيجة: const r = db.users.deleteMany({status: 'del'}); r.deletedCount.
Web-Tutorial.com

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

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

100%