dropIndexes() (حذف فهارس)
آخر تحديث: 2026-10-09
dropIndexes() (حذف فهارس)
تحذف dropIndexes() فهرسًا واحدًا أو أكثر، مثل `db.users.dropIndexes()` الذي يحذف كل فهرس غير _id، أو مرّر مصفوفة أسماء لحذف محددة منها. كما تحذف كل الفهارس المبدوءة بالاسم المعطى (فمثلًا 'age_1' يسحب معه 'age_1_text'). يبقى فهرس _id دائمًا. وهي طريقة شائعة لتنظيف بيئات الاختبار.
| الفئة | الفهرس والإدارة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
db.<collection>.dropIndexes(<indexNames>)
⚙️ المعلمات
| مصفوفة أسماء الفهارس | اختياري. الأسماء المراد إسقاطها؛ عند الإغفال تُسقط كل الفهارس عدا _id. |
|---|
القيمة المرجعة:كائن معلومات يحتوي على عدد وحالة الفهارس المُسقطة.
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// dropIndexes: حذف فهرسي age و email
db.users.dropIndexes(['age_1', 'email_1'])
المخرجات:
{ ok: 1, nIndexesWas: 4, nIndexesRemoved: 2 }
📌 ملاحظات
- حذف الوسائط يحذف كل فهرس غير _id
- المطابقة بادئة، لذا 'age_1' يزيل أيضًا 'age_1_text'
- لا يمكن حذف فهرس _id
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل تحذف dropIndexes دون وسائط كل الفهارس؟
Aنعم، كل شيء ما عدا _id — تحقق من القائمة بـ getIndexes() أولًا.
Qهل يمكن أن تستهدف dropIndexes فهارس محددة؟
Aنعم، مرّر مصفوفة أسماء، مثل db.users.dropIndexes(['age_1', 'email_1']).
Qلماذا تحذف dropIndexes أكثر من 'age_1'؟
Aلأنها تطابق ببادئة الاسم، لذا يُحذف أيضًا كل فهرس يبدأ بـ 'age_1' (مثل 'age_1_text').