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