我有两份文件:
{
"_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
答案 0 :(得分:2)
你的逻辑是有缺陷的。在您的SQL示例中,您的条件是:
WHERE 8000000 <= collection.min
现在,让我们交换比较字段,使它们与MongoDB查询的顺序相匹配,保持逻辑相同:
WHERE collection.min >= 8000000
您会注意到此查询实际上是说collection.min
必须大于或等于8000000
- 不小于或等于......
因此,您的MongoDB查询只需要使用正确的运算符:
db.collection.find({
"min" : {
$gte : 8000000
}
})