$addToSet (مُراكم المصفوفة الفريدة)
آخر تحديث: 2026-10-09
$addToSet (مُراكم المصفوفة الفريدة)
$addToSet مُراكم يضيف نتيجة تعبير كل مستند إلى مصفوفة أثناء $group، مع إزالة التكرار تلقائيًا — تظهر القيم المكررة مرة واحدة. مثل $push لكنه يضمن التفرد. يناسب الوسوم وقوائم العملاء واحتياجات إزالة التكرار الأخرى. ترتيب العناصر غير مضمون.
| الفئة | التراكميات |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $group: { _id: <key>, tags: { $addToSet: "$field" } } }
القيمة المرجعة:مصفوفة بدون تكرار لنتائج التعبير
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $addToSet: الأصناف المميزة لكل عميل
db.orders.aggregate([
{ $group: { _id: '$cust_id', items: { $addToSet: '$item' } } }
])
المخرجات:
{ "_id": "A123", "items": ["Pen", "Book"] }
📌 ملاحظات
- العناصر فريدة؛ تنهار التكرارات إلى واحدة
- الترتيب غير مضمون؛ رتب بنفسك إذا لزم
- تستخدم إزالة التكرار مساواة قيم BSON (نفس النوع والقيمة)
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما الفرق بين $addToSet و $push؟
Aيُبقي $push التكرارات؛ بينما يزيلها $addToSet.
Qهل الترتيب مضمون؟
Aلا، ترتيب العناصر غير مضمون؛ رتب النتيجة بنفسك.
Qهل يمكنه إزالة تكرار عناصر المصفوفة؟
Aليس مباشرة — يقارن قيم المصفوفة كاملة؛ فكك بـ $unwind أولًا للتسطيح.