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