$range (توليد تسلسل أرقام)
آخر تحديث: 2026-10-09
$range (توليد تسلسل أرقام)
ينتج $range تسلسلًا من الأعداد الصحيحة من قيمة بداية حتى (دون شمول) قيمة نهاية، بخطوة اختيارية. الاستخدامات النموذجية: بناء تسلسلات تواريخ بـ $dateAdd، توليد أرقام صفحات لترقيم الصفحات، أو صناعة بيانات اختبار بكميات كبيرة. الخطوة الافتراضية 1 وقد تكون سالبة للتسلسلات التنازلية؛ والخطوة 0 تُسبب خطأً. تحوي مصفوفة النتيجة أعدادًا صحيحة وتُغذّى غالبًا إلى $map لتوليد حقول بالجملة.
| الفئة | المصفوفة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $range: [ <start>, <end>, <step> ] }
⚙️ المعلمات
| البداية | العدد الصحيح الأول للتسلسل، بشكل شامل. |
|---|---|
| النهاية | العدد الصحيح الأخير للتسلسل، بشكل غير شامل. |
| الخطوة | الفرق الاختياري بين القيم المتجاورة، الافتراضي 1؛ ويجب ألا يكون 0. |
القيمة المرجعة:مصفوفة من الأعداد الصحيحة من start حتى (باستثناء) end
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $range: توليد الأرقام من 0 إلى 4
db.test.aggregate([
{ $project: {
nums: { $range: [0, 5] }
} }
])
المخرجات:
{ '_id': 1, 'nums': [ 0, 1, 2, 3, 4 ] }
📌 ملاحظات
- قيمة النهاية مستثناة؛ [0, 5] يُنتج من 0 إلى 4
- الخطوة 0 تُسبب خطأً؛ والخطوات السالبة تعدّ تنازليًا من البداية
- يُدمج غالبًا مع $map/$dateAdd لتسلسلات التواريخ أو الأرقام
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل قيمة النهاية مشمولة؟
Aلا — النطاق مغلق من اليسار ومفتوح من اليمين، لذا ينتهي [0, 5] عند 4.
Qهل يمكنني توليد تسلسل تنازلي؟
Aنعم — استخدم خطوة سالبة، مثل { $range: [5, 0, -1] } الذي يُنتج من 5 نزولًا إلى 1.
Qهل يمكن أن تكون الخطوة 0؟
Aلا، الخطوة 0 تُسبب خطأً.