Я новичок в MongoDB, поэтому мне нужна помощь для создания запроса mongo из-под SQL-запроса. Я также пытаюсь создать запрос MongoDB, похожий на запрос MySQL.
//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 ]
}
}
})
Ниже представлен документ о монго, связанный с поездкой и датами, в формате 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"
}
]
Вы должны преобразовать результат вычисления даты в объект Date
(ISODate
).
Пример запроса:
db.trip.find({
"status": "CONNECTION_LOST",
"endTime": { "$lt": new Date(new Date() - 15*60*1000) }
})
Запустите команду "ниже" в консоли Mongodb:
var endDate=new Date()
Затем попробуйте код ниже:
db.trip.find({"status": "CONNECTION_LOST",endTime:{$gte:new Date(endDate-15*60*1000),$lt:endDate}})