$concatArrays (دمج المصفوفات)
آخر تحديث: 2026-10-09
$concatArrays (دمج المصفوفات)
يدمج $concatArrays مصفوفتين أو أكثر في مصفوفة جديدة واحدة. يُستخدم غالبًا لدمج قوائم الوسوم، سجلات التاريخ، أو البيانات المقسمة إلى صفحات. يجب أن تُقيَّم كل وسيطة إلى مصفوفة؛ وإذا كانت أي وسيطة فارغة أو مفقودة تكون النتيجة الكاملة null. لا يعدّل المصادر أبدًا، بل يُرجع مصفوفة مدمجة جديدة، مما يجعله مثاليًا لتكوين الحقول داخل $addFields أو $project. على عكس $concat الذي يدمج السلاسل النصية فقط، يعمل $concatArrays مع المصفوفات حصريًا.
| الفئة | المصفوفة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $concatArrays: [ <array1>, <array2>, ... ] }
⚙️ المعلمات
| مصفوفة | تعبيرات مصفوفة للدمج؛ اثنان على الأقل. |
|---|
القيمة المرجعة:مصفوفة جديدة مدمجة؛ null إذا كان أي معامل null أو مفقودًا
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $concatArrays: دمج الوسوم والأسماء البديلة
db.products.aggregate([
{ $project: {
allTags: { $concatArrays: ['$tags', '$aliases'] }
} }
])
المخرجات:
{ '_id': 1, 'allTags': [ 'a', 'b', 'c', 'd' ] }
📌 ملاحظات
- يجب أن تكون كل الوسائط مصفوفات؛ قسّم السلاسل بـ $split أولًا أو ادمجها بـ $concat
- أي وسيطة فارغة تجعل النتيجة الكاملة null؛ احرسها بـ $ifNull
- يُرجع مصفوفة جديدة ولا يمسّ المستند المصدر أبدًا
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يمكن لـ $concatArrays دمج السلاسل النصية؟
Aلا، يقبل المصفوفات فقط. ادمج السلاسل بـ $concat، أو قسّمها إلى مصفوفات أولًا.
Qماذا يحدث إذا كانت وسيطة فارغة؟
Aتصبح النتيجة الكاملة null. استبدل null بمصفوفة فارغة عبر $ifNull.
Qكيف يختلف $concatArrays عن $push؟
A$push يراكم العناصر في $group؛ بينما يدمج $concatArrays مصفوفات قائمة داخل تعبير.