当日期存储为时间戳时搜索MongoDB集合

时间:2018-02-24 14:08:14

标签: mongodb search timestamp isodate

我是MongoDB的新手。我有一个集合,其中包含一个名为 time 的字段。它是时间戳格式,如下所示:

{
        "_id" : "uniqueid_001",
        "customer_id" : 1234567,
        "time" : 1513300298028,
        "price" : 1000,
        "action" : "buy"
}

现在我只想在日期范围之间检索文档。我用过这样的东西:

db.sales.find({
     time: {
          $gt: ISODate("2018-02-01T00:00.000Z")/1000,
          $lt: ISODate("2018-02-10T00:00.000Z")/1000
     } 
})

但这不起作用。任何人都知道我怎么能实现这个目标?

由于

P.S。这个问题在某种程度上得到了回答:Find objects between two dates MongoDB但是在日期以ISO格式保存在该问题上有所不同,但我需要以时间戳格式比较日期。

1 个答案:

答案 0 :(得分:0)

糟糕!自己找...时间戳以13位格式保存在集合中。在ISODate函数结束时它不需要/ 1000而是/ 1:

db.sales.find({
     time: {
          $gt: ISODate("2018-02-01T00:00.000Z")/1,
          $lt: ISODate("2018-02-10T00:00.000Z")/1
     } 
})

非常感谢