لماذا الفهارس؟
بلا فهرس، يفحص MongoDB كل المستندات (collection scan). الفهرس يجعل البحث شبه فوري.
إنشاء فهرس
db.users.createIndex({ email: 1 }) // تصاعدي
db.users.createIndex({ age: -1 }) // تنازلي
فهرس فريد
db.users.createIndex({ email: 1 }, { unique: true }) // يمنع التكرار
فهرس مركّب
db.users.createIndex({ age: 1, name: 1 }) // لاستعلامات على الحقلين
إدارة الفهارس
db.users.getIndexes() // عرض
db.users.dropIndex("email_1") // حذف
فحص الأداء
db.users.find({ email: "x@x.com" }).explain("executionStats")
ابحث عن IXSCAN (استخدم فهرسًا) بدل COLLSCAN (فحص كامل).
⚠️ الفهارس تسرّع القراءة لكنها تبطّئ الكتابة وتستهلك مساحة — أنشئها للحقول المستعلَم عنها كثيرًا فقط.
🎯 التالي: التجميع (Aggregation).