MongoDB ObjectId ממיר חותמת זמן ↔ ObjectId

האם ידעת שכל MongoDB ObjectId מכיל חותמת זמן מוטבעת של זמן היצירה שלו?
מתוך ה-mongo shell, ניתן להשתמש ב-getTimestamp() כדי לאחזר את חותמת הזמן מה-ObjectId, אך אין פונקציה מובנית ליצירת ObjectId מחותמת זמן.
ממיר מקוון זה יהפוך את חותמת הזמן ל-ObjectId ובחזרה.

ObjectId

(הערה: לא ייחודי, השתמש רק להשוואות, לא ליצירת מסמכים חדשים!)

ObjectId להדבקה ב-mongo shell

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);
};