首页 > 解决方案 > Spring Aggregations - 按许多条件过滤

问题描述

我按照这个在春天使用聚合。在 spring 中创建过滤器聚合

我可以按一个条件过滤。但是如何通过许多条件进行过滤。我想按以下 3 个条件过滤。(条件部分)请帮忙

 db.test.aggregate([
  {
    $match: {
      "metadata.type": "UNPAID",
      "metadata.syncStatus": "OK",
      "metadata.paymentStatus": "UNKNOWN",
      "planName": "myplan",
      "environment": "PREPROD",
      "country": "sl"
    }
  },
  {
    "$project": {
      planName: 1,
      phoneNumber: 1,
      time: 1,
      metadata: {
        $filter: {
          input: "$metadata",
          as: "metadata",
          cond: {
            $and: [
              {
                $eq: [
                  "$$metadata.type",
                  "UNPAID"
                ]
              },
              {
                $eq: [
                  "$$metadata.syncStatus",
                  "OK"
                ]
              },
              {
                $eq: [
                  "$$metadata.paymentStatus",
                  "UNKNOWN"
                ]
              }
            ]
          }
        }
      }
    }
  }
])

标签: springmongodbaggregation

解决方案


推荐阅读