$divide (القسمة)
آخر تحديث: 2026-10-09
$divide (القسمة)
ينفذ $divide عملية القسمة في تعبيرات التجميع بوسيطتين: المقسوم والمقسوم عليه. يُستخدم غالبًا لحساب أسعار الوحدات أو القيم الفردية أو النسب المئوية، مثل قسمة نتيجتي $sum للحصول على نسبة. ومن الجدير بالذكر أن القسمة على صفر لا ترمي خطأً — بل تُرجع null، على خلاف معظم لغات البرمجة. وأي وسيطة فارغة أو مفقودة تُنتج null أيضًا. يقبل $divide الأعداد الصحيحة و double و Decimal، والنتيجة عادةً من نوع double.
| الفئة | الرياضيات |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $divide: [ <expression1>, <expression2> ] }
⚙️ المعلمات
| المقسوم | قيمة رقمية أو تعبير يُحلّ إلى قيمة رقمية. |
|---|---|
| المقسوم عليه | تعبير المقسوم عليه؛ المقسوم عليه صفر يجعل النتيجة null. |
القيمة المرجعة:حاصل قسمة العددين؛ null عندما يكون المقسوم عليه صفرًا
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $divide: حساب متوسط السعر لكل عنصر
db.orders.aggregate([
{ $project: {
avgPrice: { $divide: ['$total', '$quantity'] }
} }
])
المخرجات:
{ '_id': 1, 'avgPrice': 25 }
{ '_id': 2, 'avgPrice': 9 }
📌 ملاحظات
- المقسوم عليه صفر يُنتج null بدلًا من رمي خطأ
- قسمة الأعداد الصحيحة تنتج double؛ ادمجها مع $round أو $trunc عند الحاجة إلى تقريب
- أي وسيطة فارغة أو مفقودة تُنتج null
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يرمي $divide خطأً عند القسمة على صفر؟
Aلا — يُرجع null؛ استخدم $ifNull عندما تحتاج قيمة افتراضية.
Qما النوع الذي تُرجعه قسمة الأعداد الصحيحة؟
Aالنتيجة من نوع double، لذا 5 مقسومة على 2 تعطي 2.5 بدلًا من الاقتطاع.
Qكيف أحصل على نسبة من نتيجتي $sum؟
Aمرّرهما مباشرة إلى $divide بعد حساب كلا المجموعين في $group، ثم اقسم في $project.