MongoDB ObjectId 时间戳 ↔ ObjectId 转换器
每个 MongoDB ObjectId 的前4个字节自动编码了其创建时间戳。这个强大特性支持基于时间的查询和文档排序。
虽然 MongoDB 提供 getTimestamp() 方法来提取时间戳,但从特定时间戳创建 ObjectId 需要自定义实现,用于日期范围查询和数据分析。
我们的高级转换器可以瞬间将时间戳转换为 MongoDB ObjectId,反之亦然,非常适合数据库管理员、开发者和数据分析师使用。
MongoDB ObjectId
(重要:生成的 ObjectId 仅用于查询目的,不能用于创建新文档,因为缺乏唯一性保证)
可直接用于 mongo shell 查询的 ObjectId
Time (UTC)
年(4位数)
月(1 - 12)
日(1 - 31)
小时(0 - 23)
分钟(0 - 59)
秒(0 - 59)
ISO 时间戳
何时需要从时间戳生成 ObjectId?
查找2013年11月1日之后创建的所有用户评论:
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);
};