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