查询值小于等于的位置

Jor*_*sen 4 mongodb nosql

我有两个文件:

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

dni*_*ess 9

你的逻辑有问题。在您的 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)