MongoDB过去一小时的日期范围查询

时间:2016-08-27 18:41:40

标签: mongodb datetime mongodb-query

我试图写一个MongoDB查询,它将在一小时前返回数据。 有一个带有时间戳(time)的列"time" : NumberLong("1471953787012"),这就是它在SQL中的样子:

select name from table
where time between (NOW() - INTERVAL 1 HOUR) AND (NOW())

如何编写MongoDB查询以查找一小时前的日期范围? 我尝试使用新的Date()函数,但它不起作用。 有谁知道我做错了什么?

db.coll.find({ 
  "time" : { 
    $lt: new Date(), 
    $gte: new Date(new Date().setDate(new Date().getDate()-1))
  }   
})

2 个答案:

答案 0 :(得分:7)

db.entity.find({ $and:[
    {
    "timestamp": {
        $gte: new Date(ISODate().getTime() - 1000 * 60 * 60)
    }}, 
    { 
    "timestamp": {
        $lte: ISODate()
    }}
]})

希望这会有所帮助......

答案 1 :(得分:3)

db.coll.find({
    "time": { // 60 minutes ago (from now)
        $gte: new Date(ISODate().getTime() - 1000 * 60 * 60)
    }
})