$unionWith (الاتحاد مع)
آخر تحديث: 2026-10-09
$unionWith (الاتحاد مع)
يدمج $unionWith النتائج المتراكمة لخط الأنابيب مع مستندات من مجموعة أخرى (أو نفسها)، مع معالجة مسبقة اختيارية لتلك المجموعة بخط أنابيب فرعي. المخرج الافتراضي هو الاتحاد دون إزالة تكرار. جيد لدمج المجموعات في تدفق تقرير واحد؛ المستندات ذات الأشكال المختلفة تتعايش ببساطة.
| الفئة | المتقدم والتشخيص |
|---|---|
| إصدار MongoDB | 4.4+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $unionWith: { coll: "<collection>", pipeline: [ <sub-pipeline> ] } }
⚙️ المعلمات
| coll | المجموعة الهدف المراد الاتحاد معها. |
|---|---|
| pipeline | خط أنابيب فرعي اختياري يعالج المجموعة الهدف مسبقًا. |
القيمة المرجعة:تدفق مستندات مدمج من المصدرين
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $unionWith: دمج q2 في q1، مع تصفية
db.q1.aggregate([
{ $unionWith: { coll: 'q2', pipeline: [{ $match: { active: true } }] } }
])
المخرجات:
// نتائج q1 بالإضافة إلى مستندات q2 النشطة
📌 ملاحظات
- دون إزالة تكرار؛ قد تظهر المستندات المتطابقة مرتين
- يمكن لخط الأنابيب الفرعي أن يصفّي $match أو يسقط $project وما إلى ذلك في المجموعة الهدف
- أشكال الحقول المختلفة لا تمنع الدمج
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يزيل $unionWith التكرار؟
Aلا. يوحد المصدرين؛ قد تظهر تكرارات.
Qهل يمكن لخط الأنابيب الفرعي الفرز؟
Aنعم، بمراحل عادية غير $out و $merge و $facet.
Qهل يمكنه توحيد نفس المجموعة مرتين؟
Aنعم، وجّه coll إلى المجموعة الحالية لاتحاد ذاتي.