MongoDB ObjectId محول الطابع الزمني ↔ ObjectId

هل تعلم أن كل ObjectId في MongoDB يحتوي على طابع زمني مضمن لوقت إنشائه؟
من خلال شل مونجو، يمكنك استخدام getTimestamp() لاسترداد الطابع الزمني من ObjectId، ولكن لا توجد وظيفة مدمجة لإنشاء ObjectId من الطابع الزمني.
سيقوم هذا المحول عبر الإنترنت بتحويل الطابع الزمني إلى ObjectId والعكس.

ObjectId

(ملاحظة: غير فريد، يستخدم فقط للمقارنات، وليس لإنشاء مستندات جديدة!)

ObjectId للصق في شل مونجو

Time (UTC)

السنة (4 أرقام)
الشهر (1 - 12)
اليوم (1 - 31)
الساعة (0 - 23)
الدقيقة (0 - 59)
الثانية (0 - 59)
الطابع الزمني ISO

لماذا ننشئ ObjectId من الطابع الزمني؟

للعثور على جميع التعليقات التي تم إنشاؤها بعد 2013-11-01:

db.comments.find({_id: {$gt: ObjectId("5272e0f00000000000000000")}})

Javascript functions

var objectIdFromDate = function (date) {
    return Math.floor(date.getTime() / 1000).toString(16) + "0000000000000000";
};
            
var dateFromObjectId = function (objectId) {
    return new Date(parseInt(objectId.substring(0, 8), 16) * 1000);
};