是否可以在内部编写带有AND子句的OR子句。
例如,我需要在字段field1,field2,field3和field4上编写查询。
Query should be field1 or field2 or (filed3 and field4)
有人可以帮助我。
感谢。
答案 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
更具性能。