$indexOfArray (العثور على فهرس عنصر في مصفوفة)
آخر تحديث: 2026-10-09
$indexOfArray (العثور على فهرس عنصر في مصفوفة)
يُرجع $indexOfArray فهرس أول ظهور لقيمة في مصفوفة، أو -1 عند غيابها. تشمل الاستخدامات النموذجية التحقق من وجود وسم معين وتحديد موقع عنصر لقراءته عبر $arrayElemAt. تحصر الوسيطات الاختيارية البحث في نطاق فهارس start/end. وهو نظير المصفوفات لـ $indexOfBytes/$indexOfCP اللذين يعملان على السلاسل النصية. تستخدم المطابقة مساواة صارمة، لذا يجب أن تتطابق الكائنات ككل.
| الفئة | المصفوفة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $indexOfArray: [ <array>, <searchValue>, <start>, <end> ] }
⚙️ المعلمات
| مصفوفة | المصفوفة المراد البحث فيها. |
|---|---|
| قيمة البحث | القيمة المراد إيجادها. |
| فهرس البداية | فهرس البداية اختياري وشامل؛ الافتراضي 0. |
| فهرس النهاية | فهرس النهاية اختياري وغير شامل. |
القيمة المرجعة:فهرس أول تطابق، أو -1 عند عدم العثور عليه
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $indexOfArray: تحديد موقع الوسم 'urgent'
db.tasks.aggregate([
{ $project: {
urgentPos: { $indexOfArray: ['$tags', 'urgent'] }
} }
])
المخرجات:
{ '_id': 1, 'urgentPos': 2 }
{ '_id': 2, 'urgentPos': -1 }
📌 ملاحظات
- يُرجع أول تطابق فقط؛ وتُتجاهل التكرارات اللاحقة
- النطاق مغلق من اليسار ومفتوح من اليمين: start شاملة و end حصرية
- عدم العثور يُرجع -1، وهو ما يمكن أن يقود فحوصات الوجود
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qماذا يُرجع $indexOfArray عند غياب العنصر؟
Aيُرجع -1؛ تحقق بـ $ne لاختبار الوجود.
Qهل يمكنني حصر نطاق البحث؟
Aنعم — الوسيطتان الثالثة والرابعة هما فهرسا البداية (شامل) والنهاية (حصري).
Qكيف أبحث عن عنصر كائن؟
Aمرّر الكائن كاملًا للمساواة الصارمة، مثل { $indexOfArray: ['$arr', { a: 1 }] }.