我有两个文件:
{
"_id" : ObjectId("5a2c7a84921716da1700b905"),
"min" : 9000000,
"name" : "One"
}
{
"_id" : ObjectId("5a2b7848921716da1700b903"),
"min" : 1400000,
"name" : "Two"
}
Run Code Online (Sandbox Code Playgroud)
所以我只想在属性min值小于等于 - 例如 - 时找到8000000。使用 mongo 我尝试使用
db.collection.find({
"min" : {
$lte : 8000000
}
})
Run Code Online (Sandbox Code Playgroud)
但这会返回两个文档,而不是像 SQL 中那样只有一个文档:
SELECT * FROM collection WHERE 8000000 <= collection.min;
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
PS:我想说 8000000
你的逻辑有问题。在您的 SQL 示例中,您的条件是:
WHERE 8000000 <= collection.min
现在,让我们交换比较字段,使它们与 MongoDB 查询的顺序相匹配,同时保持逻辑相同:
WHERE collection.min >= 8000000
你会注意到这个查询实际上是说collection.min必须大于或等于8000000- 不小于或等于......
所以你的 MongoDB 查询只需要使用正确的运算符:
db.collection.find({
"min" : {
$gte : 8000000
}
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4987 次 |
| 最近记录: |