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