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