createIndexes (بناء الفهارس)
آخر تحديث: 2026-10-09
createIndexes (بناء الفهارس)
يبني createIndexes فهارس على مجموعة — أحادية الحقل ومركّبة وفريدة وTTL ونصية وجيومكانية. في mongosh يكون النمط المعتاد هو المساعدة db.collection.createIndex({ field: 1 }). تستهلك عمليات البناء موارد؛ وعلى المجموعات الكبيرة تستمر القراءة والكتابة أثناء البناء الهجين (الافتراضي منذ 4.2). ترتيب الحقول في الفهارس المركّبة يحدد الاستعلامات المدعومة.
| الفئة | أوامر الإدارة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
db.orders.createIndex({ userId: 1, createdAt: -1 })
db.users.createIndex({ email: 1 }, { unique: true })
db.runCommand({ createIndexes: "orders", indexes: [{ key: { userId: 1 }, name: "user" }] })
⚙️ المعلمات
| key | مفاتيح الفهرس واتجاهاته، مثل { userId: 1, createdAt: -1 }. |
|---|---|
| unique | اضبط true لفهرس فريد. |
| name | اسم الفهرس؛ يُولَّد تلقائيًا عند إغفاله. |
القيمة المرجعة:يُرجع numIndexesBefore وnumIndexesAfter وok
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// createIndexes: فهارس مركبة وفريدة
use shop
db.orders.createIndex({ userId: 1, createdAt: -1 })
db.users.createIndex({ email: 1 }, { unique: true })
المخرجات:
{ numIndexesBefore: 1, numIndexesAfter: 2, ok: 1 }
📌 ملاحظات
- ترتيب الحقول المركّب يحدد أي الاستعلامات والترتيبات يخدمها الفهرس
- الفهارس الفريدة ترفض التكرارات بأخطاء تكرار المفتاح
- الفهارس تكلف قرصًا وذاكرة — لا تفهرس كل حقل
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qكيف ينبغي أن أرتب الحقول في فهرس مركّب؟
Aضع حقول تصفية المساواة أولًا، ثم حقول النطاق والترتيب.
Qماذا يحدث عند إدراج مكرر مع فهرس فريد؟
Aيفشل الإدراج بخطأ تكرار المفتاح.
Qهل يقفل إنشاء الفهرس قاعدة البيانات؟
Aمنذ 4.2 يبقي البناء الهجين القراءة والكتابة جارية، وإن استهلك وحدة المعالجة والإدخال/الإخراج.