$addToSet (الإضافة إلى مجموعة)

آخر تحديث: 2026-10-09

$addToSet (الإضافة إلى مجموعة)

يضيف $addToSet قيمة إلى مصفوفة فقط إذا لم تكن موجودة بالفعل، محافظًا على خلوّ المصفوفة من التكرارات. `{ $addToSet: { tags: 'mongodb' } }`. لإضافة عدة قيم دفعة واحدة ادمجه مع $each. يكشف التكرار بمقارنة القيم كاملة (المستندات المتداخلة حقلًا بحقل). رائع للوسوم وقوائم المتابعة.

الفئةتحديث المصفوفة
إصدار MongoDB1.0+
لغة المثالmongosh (الطرفية)

📝 الصيغة

{ $addToSet: { <array field>: <value> } }

⚙️ المعلمات

حقل مصفوفةحقل المصفوفة المراد الإضافة إليه.
قيمةالقيمة المراد إضافتها؛ تُتخطّى إذا كانت موجودة بالفعل.

القيمة المرجعة:نتيجة التحديث

▶ مثال

نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):

// $addToSet: إضافة وسم (مُتخطى إذا كان موجودًا)
db.articles.updateOne(
  { _id: 1 },
  { $addToSet: { tags: 'mongodb' } }
)

// القيم المتعددة تتطلب $each
db.articles.updateOne(
  { _id: 1 },
  { $addToSet: { tags: { $each: ['database', 'nosql'] } } }
)

المخرجات:

// mongodb الموجود لا يُكرَّر؛ ويُلحق database وnosql

📌 ملاحظات

📚 دروس ذات صلة

❓ الأسئلة الشائعة

Qما الفرق بين $addToSet و $push؟
A$addToSet يزيل التكرارات؛ بينما $push يلحق ويسمح بالتكرار.
Qكيف أضيف عدة قيم دفعة واحدة؟
Aاستخدم $each: { $addToSet: { tags: { $each: ['a', 'b'] } } }.
Qهل يمكن لـ $addToSet إضافة مستندات متداخلة؟
Aنعم؛ مقارنة التكرار تشمل المستند بأكمله.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%