下面是我的聚合查询的一个块,
{
$addFields: {
destinations: {
$filter: {
input: "$destinations",
cond: {
$and: [
{
$or: [
{
"$$this.reported_at": {
$exists: false
}
},
{
"$$this.reported_at": {
$eq: null
}
}
],
},
{
$eq: [
"$$this.type",
1
]
}
]
}
}
}
}
},
运行时抛出以下错误
query failed: (InvalidPipelineOperator) Invalid $addFields :: caused by :: Unrecognized expression '$$this.reported_at'
虽然
reported_at
是另一个属性,就像 type
里面的 destinations
数组一样。
当我删除包含 OR 条件的对象时,它不会抛出错误。
请帮我解决这个问题。
提前致谢