$dateFromParts (إنشاء تاريخ من الأجزاء)

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

$dateFromParts (إنشاء تاريخ من الأجزاء)

يبني $dateFromParts تاريخًا من أجزاء رقمية مثل السنة والشهر واليوم والساعة والدقيقة والثانية والميلي ثانية — وهو عكس $dateToParts. له وضعان: حقول التقويم (السنة والشهر واليوم...) أو حقول أسبوع ISO 8601 (isoWeekYear و isoWeek و isoDayOfWeek). تأخذ الحقول غير المحددة قيمتها الدنيا (الشهر الافتراضي 1، الساعة 0). مفيد لإعادة بناء التواريخ من مكونات مخزنة أو بناء حدود النطاقات. تحدد timezone منطقة التاريخ الناتج وتُعرّف افتراضيًا على UTC.

الفئةالتاريخ
إصدار MongoDB1.0+
لغة المثالmongosh (الطرفية)

📝 الصيغة

{ $dateFromParts: { year: <number>, month: <number>, day: <number>, hour: <number>, minute: <number>, second: <number>, millisecond: <number>, timezone: <timezone> } }

⚙️ المعلمات

yearمطلوب؛ year في الوضع التقويمي، أو isoWeekYear في وضع ISO.
month / isoWeekالشهر (الافتراضي 1) أو أسبوع ISO؛ استخدم حقول وضع واحد فقط.
day / isoDayOfWeekاليوم (الافتراضي 1) أو يوم الأسبوع بمعيار ISO.
hour/minute/second/millisecondاختياري؛ الافتراضي 0.
timezoneالمنطقة الزمنية اختيارية للتاريخ المُنشأ.

القيمة المرجعة:‏BSON Date المُنشأ؛ null إذا كان year مفقودًا.

▶ مثال

نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):

// $dateFromParts: إعادة بناء وقت الحدث من الأجزاء (توقيت بكين)
db.events.aggregate([
  { $project: {
      startedAt: { $dateFromParts: { year: '$y', month: '$m', day: '$d', timezone: 'Asia/Shanghai' } }
  } }
])

المخرجات:

{ "_id": 1, "startedAt": ISODate("2026-09-25T00:00:00Z") }
{ "_id": 2, "startedAt": ISODate("2026-10-01T00:00:00Z") }

📌 ملاحظات

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

📚 دروس ذات صلة

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

Qهل يمكنني بناء تاريخ من السنة فقط؟
Aنعم — الشهر الافتراضي 1 واليوم 1 وأجزاء الوقت 0.
Qهل يمكن خلط حقول التقويم وحقول ISO؟
Aلا — حقول التقويم وحقول ISO متنافية؛ والخلط يُسبب خطأً.
Qهل تُسبب القيم خارج النطاق خطأً؟
Aنعم، مثل الشهر 13 أو اليوم 32 تُسبب خطأً — تحقق قبل الإرسال.
Web-Tutorial.com

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

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

100%