$dateToParts (تقسيم التاريخ إلى أجزاء)
آخر تحديث: 2026-10-09
$dateToParts (تقسيم التاريخ إلى أجزاء)
يقسم $dateToParts تاريخًا إلى مستند يحتوي السنة والشهر واليوم والساعة والدقيقة والثانية والميلي ثانية — وهو عكس $dateFromParts. اضبط iso8601 على true لتحصل بدل ذلك على isoWeekYear و isoWeek و isoDayOfWeek. الاستخدامات الشائعة: تجميع الإحصاءات حسب السنة/الشهر (كـ _id في $group) أو تصدير التواريخ كمستندات قابلة للقراءة. تحدد timezone التقسيم وتُعرّف افتراضيًا على UTC — اضبطها دائمًا للتقارير متعددة المناطق.
| الفئة | التاريخ |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $dateToParts: { date: <date-expression>, timezone: <timezone>, iso8601: <boolean> } }
⚙️ المعلمات
| date | مطلوب؛ تعبير التاريخ المراد تقسيمه. |
|---|---|
| timezone | المنطقة الزمنية اختيارية؛ الافتراضي هو UTC. |
| iso8601 | اختياري؛ true يُخرج حقول تقويم أسبوع ISO. |
القيمة المرجعة:مستند يحتوي على year/month/day/hour/minute/second/millisecond (أو حقول ISO)؛ null إذا كان date يساوي null.
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $dateToParts: تقسيم وقت الطلب إلى أجزاء (توقيت بكين)
db.orders.aggregate([
{ $project: { parts: { $dateToParts: { date: '$createdAt', timezone: 'Asia/Shanghai' } } } }
])
المخرجات:
{ "_id": 1, "parts": { "year": 2026, "month": 9, "day": 25, "hour": 8, "minute": 30, "second": 0, "millisecond": 0 } }
📌 ملاحظات
- المفاتيح ثابتة: year و month و day و hour و minute و second و millisecond
- مع iso8601: true تصبح المفاتيح isoWeekYear و isoWeek و isoDayOfWeek
- الافتراضي هو UTC — اضبط timezone دائمًا للإحصاءات متعددة المناطق
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما أسماء حقول المخرجات؟
Aمفاتيح ثابتة: year و month و day و hour و minute و second و millisecond.
Qكيف أجمع الإحصاءات حسب الشهر؟
Aقسّم بـ $dateToParts ثم استخدم $group مع _id كتركيبة سنة/شهر.
Qماذا تفعل iso8601؟
Aعند true تُخرج حقول تقويم أسابيع ISO للإحصاءات القائمة على الأسابيع.