有没有办法根据objectid上的时间戳获取mongo集合中最近24小时生成的目标,以及在mongodb中生成objectid的算法是什么。
答案 0 :(得分:1)
有没有办法根据objectid上的时间戳在mongo集合中获取最近24小时内生成的目标
您可以调用JavaScript代码,例如:
date = new Date()
date.setDate(date.getDate() - 1)
yesterday = Math.floor(date.getTime()/1000).toString(16)
db.coll.find({_id : {$gt : new ObjectId(yesterday + "0000000000000000")}} , {_id:1})
第一和第二陈述很简单:昨天的日期。
第三行创建一个昨天的4字节十六进制字符串。哪个是ObjectId最左边的4个字节。
然后,用零填充ObjectId的最右边8个字节,因为你不关心那些。这些是mac地址(3),pid(2)和运行计数器(3)
现在您只需查询您的收藏集(示例中为coll
)并返回_id的
在mongodb中生成objectid的算法是什么