具有AND子句的MongoDb查询OR子句

时间:2013-04-09 15:48:02

标签: mongodb mongodb-php mongodb-query

是否可以在内部编写带有AND子句的OR子句。

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

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

有人可以帮助我。

感谢。

2 个答案:

答案 0 :(得分:4)

以下是与field1>匹配的查询的简单示例1 OR field2> 1或者字段3和4> 1:

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

只需根据需要切换子查询。

答案 1 :(得分:3)

嗯,更简单的方法是:

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

这是因为单个$or子句中的数组元素实际上是$and。这比使用不同评估的显式$and更具性能。