createIndex()
إنشاء فهرس createIndex()
createIndex() تبني فهرسًا على حقل أو أكثر لتسريع الاستعلامات التي تصفّي أو ترتّب حسبه.
بلا فهرس، MongoDB تفحص كل مستندات المجموعة (collection scan) لأي استعلام. الفهرس يسمح بالوصول شبه الفوري، لكنه يبطّئ عمليات الكتابة قليلًا (لازم تحديث الفهرس مع كل تعديل) ويستهلك مساحة تخزين إضافية.
الصياغة
db.collection.createIndex(<keys>, <options>)
📄 مثال
db.users.createIndex({ email: 1 }, { unique: true }) // فريد
db.orders.createIndex({ customerId: 1, createdAt: -1 }) // مركّب
// فحص هل الاستعلام يستخدم الفهرس
db.orders.find({ customerId: 1 }).explain("executionStats")أهم المعاملات
| المعامل | الوظيفة |
|---|---|
| 1 / -1 | تصاعدي / تنازلي |
| unique | يمنع تكرار القيمة عبر المستندات |
| text / 2dsphere | أنواع فهارس متخصّصة للبحث النصي والجغرافي |
💡 نصائح عملية
- أنشئ الفهارس فقط على الحقول المستعلَم عنها فعليًّا وبكثرة — فهرس على كل حقل يبطّئ الكتابة بلا فائدة تُذكر
⚠️ أخطاء شائعة
- الاعتماد على فهرس مركّب لاستعلام لا يستخدم الحقل الأوّل (البادئة) من ذلك الفهرس — الفهارس المركّبة تُستخدَم فقط عبر بادئتها
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار MONGODB الكامل بالعربي.
📚 للتعمق التقني الكامل بالإنجليزية: MDN Web Docs