$arrayElemAt (الحصول على عنصر مصفوفة بالفهرس)

آخر تحديث: 2026-10-09

$arrayElemAt (الحصول على عنصر مصفوفة بالفهرس)

يُرجع $arrayElemAt العنصر الموجود في موضع فهرس معين داخل مصفوفة. وهو العامل الأساسي للوصول إلى المصفوفات حسب الموضع في تعبيرات التجميع، ويُستخدم غالبًا لأخذ أول عنصر من طلب، أو آخر عنصر في مصفوفة، أو موضع محدد داخل $project. تبدأ الفهارس من 0، وتُعدّ السالبة من النهاية، والوصول خارج النطاق يُرجع null بدل رمي خطأ. على عكس $first/$last، يصل $arrayElemAt إلى أي موضع، مما يجعله أكثر مرونة.

الفئةالمصفوفة
إصدار MongoDB1.0+
لغة المثالmongosh (الطرفية)

📝 الصيغة

{ $arrayElemAt: [ <array>, <index> ] }

⚙️ المعلمات

مصفوفةالمصفوفة، أو تعبير يُحلّ إلى مصفوفة.
الفهرسفهرس صحيح؛ القيم السالبة تُعد من النهاية، و-1 هو العنصر الأخير.

القيمة المرجعة:العنصر عند الفهرس المعطى؛ null إذا كان خارج النطاق أو كانت المصفوفة null

▶ مثال

نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):

// $arrayElemAt: الحصول على أول عنصر من الطلب
db.orders.aggregate([
  { $project: {
      firstItem: { $arrayElemAt: ['$items', 0] }
  } }
])

المخرجات:

{ '_id': 1, 'firstItem': { 'sku': 'A01', 'qty': 2 } }
{ '_id': 2, 'firstItem': { 'sku': 'B02', 'qty': 1 } }

📌 ملاحظات

مزيد من الحالات العملية قريبًا.

📚 دروس ذات صلة

❓ الأسئلة الشائعة

Qكيف أحصل على آخر عنصر في مصفوفة بـ $arrayElemAt؟
Aاستخدم -1 كفهرس، مثل { $arrayElemAt: ['$arr', -1] }، دون حساب الطول أولًا.
Qهل يُسبب فهرس خارج النطاق خطأً؟
Aلا — يُرجع null. لفّه بـ $ifNull لتوفير قيمة افتراضية.
Qما الفرق بين $arrayElemAt و $first؟
A$first يأخذ أول عنصر دائمًا؛ و $arrayElemAt يأخذ أي فهرس بما فيها السالبة، لذا فهو أكثر مرونة.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%