我是MongoDB的新手,所以我需要帮助从下面的SQL查询创建一个mongo查询。我也在尝试创建一个类似于MySQL查询的MongoDB查询。
//SQL
SELECT *
FROM SUMMARY
WHERE STATUS=? AND ENDTIME < (NOW() - interval 15 MINUTE)
// MongoDB
db.trip.find({
"status": "CONNECTION_LOST",
"endTime": {
"$lt" : dateDifference : {
$subtract: [ new Date(), 15*60*1000 ]
}
}
})
以下是与旅行相关的mongo文档,日期为ISO格式
[
{
"_id" : ObjectId("59b009af802f927038ee05e6"),
"tripNum" : 644358,
"startTime" : ISODate("2017-07-20T10:21:11Z"),
"endTime" : "ISODate("2017-07-20T10:45:11Z"),
"status" : "CONNECTION_LOST"
},
{
"_id" : ObjectId("59b009erf802f9er38ee05e6"),
"tripNum" : 644359,
"startTime" : ISODate("2017-07-20T10:55:11Z"),
"endTime" : ISODate("2017-07-20T11:21:11Z"),
"status" : "CONNECTION_LOST"
}
]
答案 0 :(得分:1)
您必须将日期计算结果转换为Date
(ISODate
)对象。
查询示例:
db.trip.find({
"status": "CONNECTION_LOST",
"endTime": { "$lt": new Date(new Date() - 15*60*1000) }
})
答案 1 :(得分:-1)
在Mongodb控制台中运行以下命令:
var endDate=new Date()
然后尝试以下代码:
db.trip.find({"status": "CONNECTION_LOST",endTime:{$gte:new Date(endDate-15*60*1000),$lt:endDate}})