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