$arrayToObject (تحويل مصفوفة أزواج إلى كائن)
آخر تحديث: 2026-10-09
$arrayToObject (تحويل مصفوفة أزواج إلى كائن)
يحوّل $arrayToObject مصفوفة أزواج مفتاح-قيمة إلى مستند، وهو عكس $objectToArray. يقبل المدخل شكلين: مصفوفة كائنات { k, v }، أو مصفوفة عناصر ثنائية [ 'fieldName', value ]. تشمل الاستخدامات النموذجية إعادة تجميع الحقول الديناميكية بعد معالجة $objectToArray أو تعبئة إحصاءات مجمعة في كائن. يجب أن تكون المفاتيح سلاسل؛ والمفاتيح المكررة تُستبدل بالقيمة الأحدث.
| الفئة | المصفوفة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $arrayToObject: <array> }
⚙️ المعلمات
| مصفوفة | مصفوفة من كائنات { k, v } أو من مصفوفات بعنصرين [ 'fieldName', value ]. |
|---|
القيمة المرجعة:المستند الناتج؛ null للمصفوفة الفارغة أو التي تحتوي على null
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $arrayToObject: تحويل مصفوفة k/v إلى كائن
db.users.aggregate([
{ $project: {
scoreObj: { $arrayToObject: '$scorePairs' }
} }
])
المخرجات:
{ '_id': 1, 'scoreObj': { 'math': 90, 'eng': 85 } }
📌 ملاحظات
- يجب أن تكون المفاتيح سلاسل؛ والمفتاح المكرر يُستبدل بالقيمة الأحدث
- المصفوفة الفارغة أو المحتوية على null تُرجع null
- الشكلان { k, v } و [ 'k', v ] متكافئان وقد يُخلطان
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما صيغتا الإدخال؟
Aمصفوفة كائنات { k, v }، أو مصفوفة أزواج [ 'fieldName', value ].
Qماذا يحدث عندما لا يكون k سلسلة؟
Aيُسبب خطأً — يجب أن تكون المفاتيح سلاسل.
Qكيف تُعالج المفاتيح المكررة؟
Aالقيمة الأحدث تستبدل الأقدم.