$cond (التعبير الشرطي)
آخر تحديث: 2026-10-09
$cond (التعبير الشرطي)
ينفذ $cond المنطق الشرطي الثلاثي إذا-ثم-وإلا، وهو عامل التفرع الأساسي في تعبيرات التجميع. يدعم صيغة الكائن { if, then, else } وصيغة المصفوفة [ condition, trueResult, falseResult ]، وهما متكافئتان. الاستخدامات النموذجية: حساب مستويات الشحن من مبالغ الطلبات أو تحويل رموز الحالة إلى تسميات. يتبع الشرط قواعد الصدق، لذا تعمل القيم غير المنطقية أيضًا. للتفرعات الكثيرة، $switch أوضح.
| الفئة | المجموعة والشرط والتحويل |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $cond: { if: <condition>, then: <result1>, else: <result2> } } or { $cond: [ <condition>, <result1>, <result2> ] }
⚙️ المعلمات
| if/الشرط | التعبير الذي يختار الفرع، ويُحكَم حسب كونه صحيحًا. |
|---|---|
| then/النتيجة 1 | النتيجة عندما يكون الشرط صحيحًا. |
| else/النتيجة 2 | النتيجة عندما يكون الشرط خاطئًا. |
القيمة المرجعة:result1 عندما يكون الشرط صحيحًا، وإلا result2
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $cond: المبالغ فوق 100 هي طلبات كبيرة
db.orders.aggregate([
{ $project: {
level: { $cond: { if: { $gt: ['$amount', 100] }, then: 'big', else: 'small' } }
} }
])
المخرجات:
{ '_id': 1, 'level': 'big' }
{ '_id': 2, 'level': 'small' }
📌 ملاحظات
- صيغتا الكائن والمصفوفة متكافئتان وقابلتان للتبادل
- else مطلوبة ولا يمكن حذفها
- لأكثر من فرعين، يقرأ $switch بشكل أفضل
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يمكن أن يكون الشرط غير منطقي؟
Aنعم — تنطبق قواعد الصدق؛ 0 و null و '' كاذبة.
Qما الفرق بين الصيغتين؟
Aلا شيء — الدلالات متطابقة، والاختلاف في الصياغة فقط.
Qكيف أتعامل مع فروع كثيرة؟
Aاستخدم $switch، الذي يطابق أول فرع صادق بالترتيب.