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