ObjectId组成:
4字节:UNIX时间戳
3字节:表示运行MongoDB的机器
2字节:表示生成此_id的进程
3字节:由一个随机数开始的计数器生成的值
指定时间生成一个ObjectId:
mongo > new_time = new ISODate('2021-01-01 00:00:00');
mongo > new_objectid = Math.floor(new_time.getTime() / 1000).toString(16) + "0000000000000000";
mongo > print(new_objectid);
提取ObjectId的时间信息
mongo > ObjectId("5fee66000000000000000000").getTimestamp();
根据ObjectId进行范围查询
db.getCollection('xxxxx').find({
_id:{
$gte:ObjectId("5e0be1000000000000000000"),
$lt:ObjectId("5fee66000000000000000000")
}
});