MongoDB ObjectId 時間戳 ↔ ObjectId 轉換器

你知道每個 MongoDB ObjectId 都包含其創建時刻的嵌入時間戳嗎?
在 mongo shell 中,你可以使用 getTimestamp() 從 ObjectId 獲取時間戳,但沒有內建函數從時間戳生成 ObjectId。
這個線上轉換器將把時間戳轉換為 ObjectId,反之亦然。

ObjectId

(注意:不是唯一的,僅用於比較,不要用於創建新文件!)

用於貼上到 mongo shell 的 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);
};