【问题标题】:Mongo DB - Selection for OR OperatorMongo DB - OR 运算符的选择
【发布时间】:2016-04-19 15:43:47
【问题描述】:

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

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

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

【问题讨论】:

    标签: json mongodb mongodb-query logical-operators


    【解决方案1】:

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

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

    或更好

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

    所以如果你检查你的查询结果,你会发现它只返回那些“score”大于90的文档

    【讨论】:

      猜你喜欢
      • 2015-03-16
      • 1970-01-01
      • 2014-09-30
      • 2015-07-08
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      相关资源
      最近更新 更多