查询值小于等于的位置

时间:2017-12-12 03:53:56

标签: mongodb nosql

我有两份文件:

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

1 个答案:

答案 0 :(得分:2)

你的逻辑是有缺陷的。在您的SQL示例中,您的条件是:

WHERE 8000000 <= collection.min

现在,让我们交换比较字段,使它们与MongoDB查询的顺序相匹配,保持逻辑相同:

WHERE collection.min >= 8000000

您会注意到此查询实际上是说collection.min必须大于或等于8000000 - 不小于或等于......

因此,您的MongoDB查询只需要使用正确的运算符:

db.collection.find({
    "min" : {
        $gte : 8000000
    }
})