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