2013-04-09 54 views
1

是否可以写入具有AND子句的OR子句。具有AND子句的MongoDb查询OR子句

例如我需要在字段field1,field2,field3和field4上写一个查询。

Query should be field1 or field2 or (filed3 and field4) 

有人可以帮助我。

谢谢。

回答

3

嗯,更简单的方法将是:

{ 
    "$or" : [ 
      { "field1" : {"$gte" : 1} }, 
      { "field2" : {"$gte" : 1} }, 
      { "field3" : {"$gte" : 1}, "field4" : {"$gte" : 1} } 
      ] 
} 

这是因为在单个$or子句数组元素实际上是$and。这将比使用明确的$and更高效。

4

下面是一个查询,如果字段1> 1或场> 1或字段3和4> 1,将匹配一个简单的例子:

{ 
    "$or" : [ 
      { "field1" : {"$gte" : 1} }, 
      { "field2" : {"$gte" : 1} }, 
      { 
       "$and" : [ 
          { "field3" : {"$gte" : 1} }, 
          { "field3" : {"$gte" : 1} } 
         ] 
      } 
      ] 
} 

子查询只需切换到您的需求。