我想使用mongodb的_id检索在特定日期插入的值

时间:2014-07-17 08:09:16

标签: javascript mongodb mongodb-query

我想检索在特定日期插入的值。这可能是使用mongodb" _id"领域?因为这包含嵌入的日期时间。我想通过使用任何应用程序来修复mongodb shell中的值。

1 个答案:

答案 0 :(得分:2)

虽然ObjectId确实部分基于“时间戳”,但通常这是一个“客户端”库操作,用于从ObjectId值中“提取”该日期。

您可以使用$where的JavaScript评估执行此操作,但它需要“扫描”整个集合,因此效率不高:

 db.collection.find(function() {
     return (
        ( this._id.getTimestamp().valueOf() - 
          this._id.getTimestamp().valueOf() % ( 1000 * 60 * 60 * 24 ) )
        == new Date("2014-07-14").valueOf() );
 })

这基本上会比较,看看ObjectId是否与提供的日期同一天创建。其他日期数学或方法适用于其他区间。