我试图写一个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))
}
})
答案 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)
}
})