MongoDB ObjectId 时间戳 ↔ ObjectId 转换器
你知道每个 MongoDB ObjectId 都包含其创建时刻的嵌入时间戳吗?
在 mongo shell 中,你可以使用 getTimestamp() 从 ObjectId 获取时间戳,但没有内置函数从时间戳生成 ObjectId。
这个在线转换器将把时间戳转换为 ObjectId,反之亦然。
ObjectId
(注意:不是唯一的,仅用于比较,不要用于创建新文档!)
用于粘贴到 mongo shell 的 ObjectId
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); };