$currentDate (التاريخ الحالي)
آخر تحديث: 2026-10-09
$currentDate (التاريخ الحالي)
يعيّن $currentDate حقلًا على الوقت الحالي ككائن Date أو Timestamp. فالعبارة `{ $currentDate: { lastModified: true } }` تخزن Date افتراضيًا؛ و`{ $currentDate: { lastModified: { $type: 'timestamp' } } }` تخزن Timestamp. وهو أدق من new Date() من جانب العميل ويتجنب انحراف الساعة بين الخادم والعميل.
| الفئة | تحديث الحقل |
|---|---|
| إصدار MongoDB | 3.6+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $currentDate: { <field>: true | { $type: 'timestamp' | 'date' } } }
⚙️ المعلمات
| حقل | الحقل المراد ضبطه على الوقت الحالي. |
|---|---|
| النوع | true يخزّن قيمة Date؛ يمكن تحديد 'timestamp' أو 'date' صراحةً. |
القيمة المرجعة:نتيجة التحديث
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $currentDate: تسجيل وقت التعديل
// true يخزن Date افتراضيًا
db.articles.updateOne(
{ _id: 1 },
{ $currentDate: { lastModified: true } }
)
// Timestamp صريح
db.articles.updateOne(
{ _id: 1 },
{ $currentDate: { lastModified: { $type: 'timestamp' } } }
)
المخرجات:
// يُعيّن lastModified على وقت الخادم كـ Date أو Timestamp
📌 ملاحظات
- ينشئ الحقل إذا كان مفقودًا
- يناسب Timestamp احتياجات الفرز أو التكرار الزمني
- يستخدم وقت الخادم، مستقلًا عن المناطق الزمنية للعميل
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما الفرق بين $currentDate و $set: new Date()؟
Aيقرأ $currentDate ساعة الخادم باستمرار؛ بينما يستخدم $set وقت العميل، الذي قد يختلف عبر العملاء.
Qهل يمكنه تخزين Timestamp؟
Aنعم، حدد { $type: 'timestamp' }.
Qهل يستبدل $currentDate القيم الموجودة؟
Aنعم، يستبدلها بالوقت الحالي.