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