$add (الجمع)
آخر تحديث: 2026-10-09
$add (الجمع)
ينفذ $add عملية الجمع داخل تعبيرات التجميع. يجمع أرقامًا متعددة، أو يضيف عددًا من الميلي ثانية إلى تاريخ، أو يُرجع تاريخًا جديدًا من تاريخ زائد ميلي ثانية. يُستخدم غالبًا في مراحل $project أو $addFields أو $set لحساب الإجماليات مثل السعر زائد الضريبة. تُمرَّر الوسائط كمصفوفة تحتوي عنصرين على الأقل؛ إذا كانت أي وسيطة فارغة أو مفقودة، يُرجع التعبير كله null. لحساب الفرق بالميلي ثانية بين تاريخين استخدم $subtract بدلًا من ذلك.
| الفئة | الرياضيات |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $add: [ <expression1>, <expression2>, ... ] }
⚙️ المعلمات
| المعامل | قيم رقمية أو تواريخ أو تعبيرات تُحلّ إليها؛ اثنان على الأقل. |
|---|
القيمة المرجعة:مجموع الأعداد؛ التاريخ زائد المللي ثانية يُرجع تاريخًا
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $add: حساب الإجمالي مع الضريبة
db.orders.aggregate([
{ $project: {
total: { $add: ['$price', '$tax'] }
} }
])
المخرجات:
{ '_id': 1, 'total': 110 }
{ '_id': 2, 'total': 55 }
📌 ملاحظات
- أي وسيطة فارغة أو مفقودة تجعل التعبير كله null (استخدم $ifNull للحماية)
- التاريخ زائد ميلي ثانية يُرجع تاريخًا؛ حوّل الميلي ثانية إلى أيام بالقسمة على 86400000
- على خلاف $sum (مُجمِّع يُستخدم في $group)، فإن $add تعبير عادي
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما الفرق بين $add و $sum؟
A$sum مُجمِّع يُستخدم في $group لجمع القيم عبر المستندات؛ أما $add فهو تعبير عام يجمع القيم داخل مصفوفة.
Qهل يمكن لـ $add إضافة أيام إلى تاريخ؟
Aليس مباشرة — يُعامل الرقم كميلي ثانية. اضرب في 86400000 أولًا، أو استخدم $dateAdd مع وحدة اليوم للوضوح.
Qماذا يحدث عندما يلتقي $add بقيمة null؟
Aإذا كانت أي وسيطة فارغة أو مفقودة تكون النتيجة null؛ لفّها بـ $ifNull عندما تحتاج قيمة افتراضية.