我是 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"
}
]
最佳答案
您必须将日期计算结果转换为Date
(ISODate
)对象。
查询示例:
db.trip.find({
"status": "CONNECTION_LOST",
"endTime": { "$lt": new Date(new Date() - 15*60*1000) }
})
关于mysql - 将此 SQL 查询转换为 mongodb 查询 -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47882321/