$month (الحصول على الشهر)
آخر تحديث: 2026-10-09
$month (الحصول على الشهر)
يُرجع $month شهر تاريخ ما (1 إلى 12) — أحد أكثر التعبيرات استخدامًا للتقارير الشهرية. اقرنه بـ $year كمفتاح $group لبناء بُعد سنة-شهر. يُرجع عددًا صحيحًا دون حشو أصفار؛ استخدم %m في $dateToString للحصول على سلسلة من رقمين. تحدد timezone حدود الشهر وتُعرّف افتراضيًا على UTC — اضبطها دائمًا للتقارير الشهرية التجارية.
| الفئة | التاريخ |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $month: { date: <date-expression>, timezone: <timezone> } }
⚙️ المعلمات
| date | مطلوب؛ تعبير التاريخ. |
|---|---|
| timezone | المنطقة الزمنية اختيارية؛ الافتراضي هو UTC. |
القيمة المرجعة:الشهر (1-12)؛ null إذا كان date يساوي null.
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $month + $year: إجماليات الطلبات حسب الشهر
db.orders.aggregate([
{ $group: {
_id: { y: { $year: { date: '$orderDate' } }, m: { $month: { date: '$orderDate' } } },
total: { $sum: '$amount' }
} }
])
المخرجات:
{ "_id": { "y": 2026, "m": 9 }, "total": 45600 }
{ "_id": { "y": 2026, "m": 10 }, "total": 52300 }
📌 ملاحظات
- يناير هو 1 وديسمبر هو 12
- اقرن الشهر بالسنة دائمًا — فالشهر وحده يخلط السنوات
- الافتراضي هو UTC — اضبط timezone صراحةً للتقارير الشهرية
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يُرجع من 1 إلى 12؟
Aنعم — يناير هو 1 وديسمبر هو 12.
Qكيف أخرج سلاسل بنمط 2026-09؟
Aاستخدم تنسيق %Y-%m من $dateToString، أو ادمج $month مع $year يدويًا.
Qلماذا إحصاءاتي الشهرية منزاحة؟
Aعادةً مشكلة منطقة زمنية — مرّر منطقة محلية مثل Asia/Shanghai.