MongoDB ObjectId Kibadilisha cha Alama ya Wakati ↔ ObjectId
Je, ulijua kwamba kila MongoDB ObjectId ina alama ya wakati iliyojengwa ndani ya wakati wa uundaji wake?
Kutoka kwa shell ya mongo, unaweza kutumia getTimestamp() kupata alama ya wakati kutoka kwa ObjectId, lakini hakuna kazi iliyojengwa ndani ya kutengeneza ObjectId kutoka kwa alama ya wakati.
Kibadilisha hiki cha mtandaoni kitabadilisha alama ya wakati kuwa ObjectId na kurudi nyuma.
ObjectId
(KUMBUKA: sio ya kipekee, tumia tu kwa ulinganisho, sio kwa kuunda nyaraka mpya!)
ObjectId ya kubandika kwenye shell ya mongo
Time (UTC)
Mwaka (tarakimu 4)
Mwezi (1 - 12)
Siku (1 - 31)
Saa (0 - 23)
Dakika (0 - 59)
Sekunde (0 - 59)
Alama ya wakati ya ISO
Kwa nini kutengeneza ObjectId kutoka kwa alama ya wakati?
Kupata maoni yote yaliyoundwa baada ya 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); };