MongoDB ObjectId Konwerter Znacznika czasu ↔ ObjectId

Czy wiesz, że każdy MongoDB ObjectId zawiera wbudowany znacznik czasu jego utworzenia?
Z powłoki mongo możesz użyć getTimestamp() aby pobrać znacznik czasu z ObjectId, ale nie ma wbudowanej funkcji do generowania ObjectId ze znacznika czasu.
Ten konwerter online przekonwertuje znacznik czasu na ObjectId i odwrotnie.

ObjectId

(UWAGA: nie jest unikalny, używaj tylko do porównań, nie do tworzenia nowych dokumentów!)

ObjectId do wklejenia w powłoce mongo

Time (UTC)

Rok (4 cyfry)
Miesiąc (1 - 12)
Dzień (1 - 31)
Godzina (0 - 23)
Minuta (0 - 59)
Sekunda (0 - 59)
Znacznik czasu ISO

Dlaczego generować ObjectId ze znacznika czasu?

Aby znaleźć wszystkie komentarze utworzone po 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);
};