使用可能的选项数组查询 MongoDB 集合深处的字段

Query over a field which is deep inside MongoDB collection using array of possible options

我在 MongoDB 中有一个 listcommentDocument 集合,其中每个集合都具有以下结构:

{
    "commentName": "test comment",
    "outputs": {
        "extraDetails": [{
            "name": "My Own Comment",
            "amountPaidDetails": [{
                "paidService": "PhonePe",       // <--------HERE
                "usdAmount": 80,
            },{
                "paidService": "GooglePay",  // <--------HERE
                "usdAmount": 50,
            },{
                "paidService": "Cash",        // <--------HERE
                "usdAmount": 15,
            }]
        }]
    },
    "lastUpdateDate": {
        "$date": "2020-06-24T04:00:00.000Z"
    },
    "lastUpdatedBy": "michealJackson",
}

我必须编写一个 MongoDB 查询,将付费服务名称列表作为输入传递。如果数据库中的文档包含我在 allocatedAmound 列表中发送的列表中的任何付费服务,则该文档应该出现在返回的文档列表中。

例如:我传递列表 ['WalletCash', 'GooglePay', 'BankingCredits'],上面的文档应该存在,因为它有一个带有 paidService 'GooglePay'.

的文档

如何写查询?

db.collection.aggregate([
  {
    $match: {
      "outputs.extraDetails.amountPaidDetails.paidService": {
        $in: [
          "WalletCash",
          "GooglePay",
          "BankingCredits"
        ]
      }
    }
  }
])

mongoplayground