$sum (مُراكم المجموع)
آخر تحديث: 2026-10-09
$sum (مُراكم المجموع)
$sum مُراكم يحسب مجموع حقل محدد عبر مجموعة (أو عدًّا عند إعطاء الحرفية 1). يُستخدم داخل $group للمجاميع والأعداد وفي $project لجمع عناصر المصفوفات. كتعبير يجمع تعبيرًا محددًا عبر كل مستندات الإدخال.
| الفئة | التراكميات |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
// sum داخل $group
{ $group: { _id: <key>, total: { $sum: "$field" } } }
// count
{ $group: { _id: <key>, count: { $sum: 1 } } }
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $sum: الإجمالي والعدد لكل صنف
db.sales.aggregate([
{ $group: { _id: "$item", total: { $sum: "$price" }, count: { $sum: 1 } } }
])
المخرجات:
{ "_id": "abc", "total": 25, "count": 2 }
{ "_id": "xyz", "total": 30, "count": 3 }
📌 ملاحظات
- تُتخطى القيم غير الرقمية
- $sum: 1 هي الطريقة المثلى لعدّ المستندات في مجموعة
- في $group يتراكم عبر المجموعة؛ وفي $project يمكنه جمع عناصر المصفوفة
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qماذا يحدث عندما يصادف $sum حقل سلسلة؟
Aتُتخطى السلاسل والقيم غير الرقمية (دون خطأ). للمعالجة الصارمة، حوّل بـ $toInt/$toDouble أو وفّر قيمة افتراضية بـ $ifNull.
Qهل يجب استخدام مُراكم $sum داخل $group فقط؟
Aكمُراكم فهو خاص بـ $group. لكن $sum يعمل أيضًا كتعبير تجميع عادي، مثل $project لجمع مصفوفة، بنفس الدلالات.
Qماذا يُرجع $sum لمصفوفة فارغة؟
Aيُرجع 0. في $group، إذا لم يكن للمجموعة مستندات مطابقة أو كانت المصفوفة فارغة، يتراكم $sum إلى 0، وهو مفيد كاحتياط عدّ.