$addFields (إضافة حقول)

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

$addFields (إضافة حقول)

يضيف $addFields حقولًا جديدة إلى كل مستند أو يستبدل حقولًا موجودة فيه مع الإبقاء على كل الحقول الأخرى. وعلى خلاف $project — الذي يسقط الحقول غير المدرجة افتراضيًا — لا يزيد $addFields المستند إلا نموًّا. يمكن أن تكون القيم الجديدة أي تعبير تجميع، وغالبًا محسوبة من نتائج $lookup. منذ MongoDB 3.4 فهو مكافئ لـ $set.

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

📝 الصيغة

{ $addFields: { <newField>: <expression>, ... } }

⚙️ المعلمات

حقل جديدأسماء الحقول مربوطة بتعبيرات تشير إلى حقول المستند المُدخَل.

القيمة المرجعة:تدفق مستندات مع حقول مضافة أو مستبدَلة

▶ مثال

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

// $addFields: إضافة حقل total
db.sales.aggregate([
  { $addFields: { total: { $multiply: ['$price', '$qty'] } } }
])

المخرجات:

// كل الحقول الأصلية محفوظة، بالإضافة إلى total
{ "item": "Pen", "price": 50, "qty": 3, "total": 150 }

📌 ملاحظات

📚 دروس ذات صلة

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

Qما الفرق بين $addFields و $set؟
Aمنذ MongoDB 3.4 هما مكافئان تمامًا؛ $addFields هو الاسم الأقدم.
Qهل يمكن لـ $addFields الرجوع إلى حقوله الجديدة؟
Aلا. تعبيرات المرحلة الواحدة ترى مستند الإدخال فقط؛ سلسل عدة مراحل $addFields بدلًا من ذلك.
Qهل يستبدل $addFields الحقول الموجودة؟
Aنعم. الحقل ذو الاسم الموجود يُستبدل.
Web-Tutorial.com

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

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

100%