我有一个这样的文件:
{
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'}
]
}
]