在MongoDB聚合管道中,使用$addFields和$cond时,您可能会遇到无法使用变量的问题。但是,您可以使用$let表达式来处理这个问题。例如:
db.collection.aggregate([
{
$addFields: {
newField: {
$let: {
vars: {
var1: "$field1",
var2: "$field2",
var3: "$field3"
},
in: {
$cond: [
{
$eq: ["$$var1", "value1"]
},
"$$var2",
"$$var3"
]
}
}
}
}
}
])
在上面的示例中,我们使用了$let表达式来定义三个变量var1、var2和var3,并在$addFields中使用$cond表达式将它们结合起来。这样,您就可以在聚合管道中使用变量并执行必要的逻辑判断。