mongodb中mongo objectid的算法以及如何从mongo集合中获取最后24小时数据

时间:2013-08-05 19:07:25

标签: mongodb mapreduce

有没有办法根据objectid上的时间戳获取mongo集合中最近24小时生成的目标,以及在mongodb中生成objectid的算法是什么。

1 个答案:

答案 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的算法是什么

There you are