MongoDB ObjectId Penukar Cap Masa ↔ ObjectId

Adakah anda tahu bahawa setiap MongoDB ObjectId mengandungi cap masa tertanam masa penciptaannya?
Dari shell mongo, anda boleh menggunakan getTimestamp() untuk mendapatkan cap masa dari ObjectId, tetapi tiada fungsi terbina untuk menjana ObjectId dari cap masa.
Penukar dalam talian ini akan menukar cap masa kepada ObjectId dan sebaliknya.

ObjectId

(NOTA: tidak unik, gunakan hanya untuk perbandingan, bukan untuk membuat dokumen baru!)

ObjectId untuk ditampal ke dalam shell mongo

Time (UTC)

Tahun (4 digit)
Bulan (1 - 12)
Hari (1 - 31)
Jam (0 - 23)
Minit (0 - 59)
Saat (0 - 59)
Cap masa ISO

Mengapa menjana ObjectId dari cap masa?

Untuk mencari semua komen yang dibuat selepas 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);
};