我有两个文件:
{
"_id" : ObjectId("5a2c7a84921716da1700b905"),
"min" : 9000000,
"name" : "One"
}
{
"_id" : ObjectId("5a2b7848921716da1700b903"),
"min" : 1400000,
"name" : "Two"
}
所以我只想在属性
min
的值小于等于 - 例如 - 8000000
时查找。使用 mongo 我尝试使用
db.collection.find({
"min" : {
$lte : 8000000
}
})
但这会返回两个文档,而不是像 SQL 中那样只有一个文档:
SELECT * FROM collection WHERE 8000000 <= collection.min;
我该如何解决?
P.S:我想说
8000000
最佳答案
你的逻辑有问题。在您的 SQL 示例中,您的条件是:WHERE 8000000 <= collection.min
现在,让我们交换比较的字段,使它们与 MongoDB 查询的顺序相匹配,同时保持逻辑相同:WHERE collection.min >= 8000000
你会注意到这个查询实际上是说 collection.min
必须大于或等于 8000000
- 不小于或等于...
所以你的 MongoDB 查询只需要使用正确的运算符:
db.collection.find({
"min" : {
$gte : 8000000
}
})
关于mongodb - 查询值小于等于的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47765104/