我有两个文件:

{
    "_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/

10-09 17:42