我正在使用aggregation
在MongoDB中编写一个查询,如果condition 1
匹配,那么我想投影一些字段,当condition 2
匹配时,我想投影一些不同的字段,当第三个condition 3
到达时,我想投影其他一些不同的字段。
我的查询如下所示
{
$match: {
$and: [
{
{field_a: "henesa"}
},
{
$expr: {
$or: [
{ Condition 1}, {Condition 2}, {condition 3}
]
}
}
]
}
},
{$project: { /* Here How To Decide which params to send */}}
谁能告诉我我该怎么做。
您可以在投影阶段使用<field>: <expression>
$projection语法。
<expression>
部件中,您可以使用条件运算符根据条件投影值。 例如
{ $project: {
field: { $switch: {
branches: [
{ case: Condition 1, then: "$field1" },
{ case: Condition 2, then: "$field2" },
...
]
} }
} }
或者更复杂的$cond组合,如果您需要处理满足多个$or
条件的情况。