如何在 Mongo 管道中用多个 $and 在同一级别表达条件
How to express a condition in a Mongo Pipeline with multiple $and's on the same level
我的问题是我需要在 Mongo 聚合管道中以 ((A&B)||(C&D))
格式表达一个条件,当你以 Mongo 的格式写出来时,它是布尔值产量 {$or: {$and: {A, B}, $and: {C ,D}}
中的表达式。这个问题是你不能在同一个数组中有两个具有相同键的元素。更具体地说,我正在使用 PHP 的 Mongo 插件,所以我的格式实际上看起来像
array('$or' =>
array(
'$and' => array(
A,
B
),
'$and' => array(
C,
D
)
)
);
同样,这不是一个可以存在的数组,因为 '$and'
键在同一个数组中被使用了两次。有谁知道告诉 mongo 如何执行此布尔表达式的方法?可能是重写它的方法或将其转换为 Mongo 的布尔结构的不同方法。
这不是正确的语法。 $or
和 $and
取数组:
((A && B) || (C && D)) ==>
{ "$or" : [{ "$and" : [A, B] }, { "$and" : [C, D] }] }
我的问题是我需要在 Mongo 聚合管道中以 ((A&B)||(C&D))
格式表达一个条件,当你以 Mongo 的格式写出来时,它是布尔值产量 {$or: {$and: {A, B}, $and: {C ,D}}
中的表达式。这个问题是你不能在同一个数组中有两个具有相同键的元素。更具体地说,我正在使用 PHP 的 Mongo 插件,所以我的格式实际上看起来像
array('$or' =>
array(
'$and' => array(
A,
B
),
'$and' => array(
C,
D
)
)
);
同样,这不是一个可以存在的数组,因为 '$and'
键在同一个数组中被使用了两次。有谁知道告诉 mongo 如何执行此布尔表达式的方法?可能是重写它的方法或将其转换为 Mongo 的布尔结构的不同方法。
这不是正确的语法。 $or
和 $and
取数组:
((A && B) || (C && D)) ==>
{ "$or" : [{ "$and" : [A, B] }, { "$and" : [C, D] }] }