【问题标题】:how to check if all data match a value in mongoose?如何检查所有数据是否与猫鼬中的值匹配?
【发布时间】:2023-03-19 08:41:01
【问题描述】:

我的收藏是

{
id:1,
 "codes": [
            1,
            0,
            0
        ]
}

我必须检查代码中的所有值是否都匹配 1 我尝试了以下

 value: {
                    $max: {
                        $cond: [{
                            $and: [{ $eq: ["$data.count_3", 1] },

                            ]
                        },
                            0,
                            1]
                    }
                },

this.data.count_3 具有代码值,即 [1,0,0]

但它不能正常工作。我是否正确使用了变量。请帮助。提前致谢

【问题讨论】:

    标签: node.js mongoose mongodb-query aggregation-framework


    【解决方案1】:

    您可以在$filtering 之前/之后比较数组。 更改此条件 "$eq": ["$$this", 1] 以仅过滤有效项目。

    db.collection.aggregate([
      {
        $project: {
          value: {
            $cond: [
              {
                $eq: [
                  "$codes",
                  {
                    $filter: {
                      input: "$codes",
                      cond: {
                        "$eq": [
                          "$$this",
                          1
                        ]
                      }
                    }
                  }
                ]
              },
              1,
              0
            ]
          }
        }
      }
    ])
    

    MongoPlayground

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 2020-03-18
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 2019-08-25
      • 2021-10-16
      相关资源
      最近更新 更多