$dayOfWeek (الحصول على يوم الأسبوع)
آخر تحديث: 2026-10-09
$dayOfWeek (الحصول على يوم الأسبوع)
يُرجع $dayOfWeek يوم الأسبوع لتاريخ ما كعدد صحيح: 1 هو الأحد و 7 هو السبت — بما يطابق Date.getDay() في جافاسكريبت. يُستخدم غالبًا لإحصاءات حركة المرور أو الجدولة حسب أيام الأسبوع. لاحظ أن الترقيم يبدأ من الأحد، على عكس $isoDayOfWeek (حيث الاثنين هو 1)، لذا تأكد من الدلالة التي تحتاجها. تحدد timezone حدود اليوم وتُعرّف افتراضيًا على UTC.
| الفئة | التاريخ |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $dayOfWeek: { date: <date-expression>, timezone: <timezone> } }
⚙️ المعلمات
| date | مطلوب؛ تعبير التاريخ. |
|---|---|
| timezone | المنطقة الزمنية اختيارية؛ الافتراضي هو UTC. |
القيمة المرجعة:رقم يوم الأسبوع (1=الأحد، 7=السبت)؛ null إذا كان date يساوي null.
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $dayOfWeek: عدّ الزيارات حسب يوم الأسبوع (توقيت بكين)
db.logs.aggregate([
{ $group: {
_id: { $dayOfWeek: { date: '$ts', timezone: 'Asia/Shanghai' } },
cnt: { $sum: 1 }
} }
])
المخرجات:
{ "_id": 1, "cnt": 1240 }
{ "_id": 2, "cnt": 980 }
📌 ملاحظات
- 1 هو الأحد لا الاثنين — مأزق شائع؛ استخدم $isoDayOfWeek للبدء من الاثنين
- اجمعه مع $group لإحصاءات قائمة على أيام الأسبوع
- الافتراضي هو UTC؛ مرّر Asia/Shanghai لأعمال قائمة في الصين
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qأي يوم هو 1؟
A1 هو الأحد و 7 هو السبت — مثل getDay في جافاسكريبت.
Qكيف أحصل على ترقيم يبدأ من الاثنين؟
Aاستخدم $isoDayOfWeek: 1 هو الاثنين و 7 هو الأحد.
Qهل يمكنني الحصول على اسم يوم الأسبوع مباشرة؟
Aلا — حوّل عبر $switch أو العنصر النائب %A من $dateToString.