$dateToParts (تقسيم التاريخ إلى أجزاء)

آخر تحديث: 2026-10-09

$dateToParts (تقسيم التاريخ إلى أجزاء)

يقسم $dateToParts تاريخًا إلى مستند يحتوي السنة والشهر واليوم والساعة والدقيقة والثانية والميلي ثانية — وهو عكس $dateFromParts. اضبط iso8601 على true لتحصل بدل ذلك على isoWeekYear و isoWeek و isoDayOfWeek. الاستخدامات الشائعة: تجميع الإحصاءات حسب السنة/الشهر (كـ _id في $group) أو تصدير التواريخ كمستندات قابلة للقراءة. تحدد timezone التقسيم وتُعرّف افتراضيًا على UTC — اضبطها دائمًا للتقارير متعددة المناطق.

الفئةالتاريخ
إصدار MongoDB1.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 } }

📌 ملاحظات

مزيد من الحالات العملية قريبًا.

📚 دروس ذات صلة

❓ الأسئلة الشائعة

Qما أسماء حقول المخرجات؟
Aمفاتيح ثابتة: year و month و day و hour و minute و second و millisecond.
Qكيف أجمع الإحصاءات حسب الشهر؟
Aقسّم بـ $dateToParts ثم استخدم $group مع _id كتركيبة سنة/شهر.
Qماذا تفعل iso8601؟
Aعند true تُخرج حقول تقويم أسابيع ISO للإحصاءات القائمة على الأسابيع.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%