如何在 AND 中的 AND 中添加 OR 条件 mongodb 聚合的 $filter

问题描述 投票:0回答:0

下面是我的聚合查询的一个块,

{
          $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 条件的对象时,它不会抛出错误。 请帮我解决这个问题。

提前致谢

javascript mongodb mongodb-query aggregation-framework aggregate
© www.soinside.com 2019 - 2024. All rights reserved.