1

I followed this to use aggregations in spring. Create filter aggregation in spring

I can filter by one condition. But how to filter by many conditions. I want to filter by 3 conditions as below.(cond section) please help

 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"
                ]
              }
            ]
          }
        }
      }
    }
  }
])
hasitha
  • 21
  • 1
  • 3

0 Answers0