MongoDB ObjectId Конвертер Временной метки ↔ ObjectId

Знаете ли вы, что каждый MongoDB ObjectId содержит встроенную временную метку момента его создания?
Из оболочки mongo вы можете использовать getTimestamp() для получения временной метки из ObjectId, но нет встроенной функции для генерации ObjectId из временной метки.
Этот онлайн-конвертер преобразует временную метку в ObjectId и обратно.

ObjectId

(ПРИМЕЧАНИЕ: не уникален, используйте только для сравнений, не для создания новых документов!)

ObjectId для вставки в оболочку mongo

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