Mongo DB - OR运算符的选择

时间:2016-01-14 10:42:21

标签: json mongodb mongodb-query logical-operators

我正在尝试获取分数大于90或小于50的文档。我知道获取文档的正确查询,这是第一个。我只是想知道第二个查询做了什么(我知道这是不正确的)。它取得了文档,但我不明白它的作用。

1. db.subjects.find( { $or : [{"score" : { $lt : 50 }}, {"score" : { $gt : 90}}] } )

2. db.subjects.find( { $or : [{"score" : { $lt : 50 }, "score" : { $gt : 90}}] } )

1 个答案:

答案 0 :(得分:2)

原因是JSON文档中允许使用重复键,因此第二个查询与:

相同
db.subjects.find( { $or : [{ "score" : { $gt : 90 } } ] })

或更好

db.subjects.find( { "score" : { $gt : 90 } })

因此,如果您检查查询结果,您将看到它只返回那些"得分"大于90