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