$isoWeekYear (سنة أسبوع ISO)
آخر تحديث: 2026-10-09
$isoWeekYear (سنة أسبوع ISO)
يُرجع $isoWeekYear السنة التي ينتمي إليها أسبوع ISO لتاريخ ما، ويُستخدم مع $isoWeek. لأن أسابيع ISO قد تمتد عبر السنوات (قد يقع 31 ديسمبر في الأسبوع 1 من السنة التالية)، فقد تختلف سنة الأسبوع عن السنة التقويمية — و $isoWeekYear وحده يعطي الملكية الصحيحة. الاستخدام النموذجي: بناء مفتاح تجميع سنة-أسبوع. تحدد timezone حدود الأسبوع.
| الفئة | التاريخ |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $isoWeekYear: { date: <date-expression>, timezone: <timezone> } }
⚙️ المعلمات
| date | مطلوب؛ تعبير التاريخ. |
|---|---|
| timezone | المنطقة الزمنية اختيارية؛ الافتراضي هو UTC. |
القيمة المرجعة:سنة أسبوع ISO؛ null إذا كان date يساوي null.
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $isoWeekYear + $isoWeek: تجميع سنة-أسبوع
db.sales.aggregate([
{ $group: {
_id: { y: { $isoWeekYear: { date: '$soldAt' } }, w: { $isoWeek: { date: '$soldAt' } } },
total: { $sum: '$amount' }
} }
])
المخرجات:
{ "_id": { "y": 2026, "w": 39 }, "total": 9800 }
{ "_id": { "y": 2026, "w": 40 }, "total": 10450 }
📌 ملاحظات
- قرب حدود السنوات قد تختلف سنة أسبوع ISO عن السنة التقويمية بواحد
- استخدمه مع $isoWeek؛ وهو وحده ذو قيمة قليلة
- الافتراضي هو UTC — وحّد المنطقة الزمنية قبل الإحصاءات
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما الفرق عن $year؟
A$year هو السنة التقويمية؛ و $isoWeekYear هو سنة ISO للأسبوع — وقد يختلفان في الأسابيع الممتدة.
Qمتى أحتاج إليه؟
Aلتجميع سنة-أسبوع، ادمج $isoWeekYear مع $isoWeek كمفتاح.
Qهل هو مفيد وحده؟
Aليس فعلًا — يعبّر عن ملكية الأسبوع فقط مع $isoWeek.