SQL MongoDB 中的等效查询
SQL equivalent queries in MongoDB
我正在将 SQL 查询转换为 MongoDB。我有以下 SQL 语句检查输入并相应地执行查询。
(score_min = -1 OR Scores BETWEEN score_min AND score_max)
scores是一个字段名,我要过滤
仍然无法找出在 MongoDB 聚合管道中执行此查询的最佳方法。有什么建议吗?
您可以通过 $expr
在一个简单的 find
中实现该行为。不是必须使用聚合管道。
db.collection.find({
$expr: {
$or: [
{
// $eq: [<score_min>, -1]
$eq: [
<score_min>,
-1
]
},
{
$and: [
{
// $gte: ["$Scores", <score_min>]
$gte: [
"$Scores",
<score_min>
]
},
{
$lte: [
// $gte: ["$Scores", <score_max>]
"$Scores",
<score_max>
]
}
]
}
]
}
})
这里是Mongo playground供大家参考。
我正在将 SQL 查询转换为 MongoDB。我有以下 SQL 语句检查输入并相应地执行查询。
(score_min = -1 OR Scores BETWEEN score_min AND score_max)
scores是一个字段名,我要过滤
仍然无法找出在 MongoDB 聚合管道中执行此查询的最佳方法。有什么建议吗?
您可以通过 $expr
在一个简单的 find
中实现该行为。不是必须使用聚合管道。
db.collection.find({
$expr: {
$or: [
{
// $eq: [<score_min>, -1]
$eq: [
<score_min>,
-1
]
},
{
$and: [
{
// $gte: ["$Scores", <score_min>]
$gte: [
"$Scores",
<score_min>
]
},
{
$lte: [
// $gte: ["$Scores", <score_max>]
"$Scores",
<score_max>
]
}
]
}
]
}
})
这里是Mongo playground供大家参考。