子文档的猫鼬投影条件为数组

时间:2020-04-29 10:47:00

标签: mongoose

我有一个这样的文件:

{
 banks : [
           {bank_name : 'bank1',
            transfers : [
                          {amount : 10,
                           reason : 'A'
                          },
                          {amount : 3,
                           reason : 'B'
                          }
                         ]
            }
         ]

}

我想通过reason == 'A'获得所有银行的所有转换。我该怎么办?

我尝试类似:

Model.aggregate().match()
                .unwind(
                    { path: '$banks'})
                .unwind(
                    {
                      path: '$banks.transfers',
                    })
                .project(
                   {'banks.bank_name':1,
                    'banks.transfers.amount' : {
                      $cond: 
                         [
                          {'$banks.transfers.reason' : 'A'},  // if
                           '$banks.transfers.amount',         // then
                           null                               // else
                         ]
                                               }
            })

但是会出错

MongoError: Unrecognized expression '$banks.transfers.reason'

预期输出应为转帐数组,可能按“ bank_name”分组。

[
 {bank_name:'bank1', 
  transfers: [ {amount:10, reason:'A'}, 
               {amount:1, reason:'A'}
             ]
 },
{bank_name:'bank2', 
 transfers: [  {amount:9, reason:'A'},
               {amount:3, reason:'A'}
            ]
 }
]

0 个答案:

没有答案
相关问题