我在DB中有类似的文档:
{
"first_name": "John",
"last_name": "Bolt",
"account": [
{
"cardnumber": "4844615935257045",
"cardtype": "jcb",
"currency": "CZK",
"balance": 4924.99
},
{
"cardnumber": "3552058835710041",
"cardtype": "jcb",
"currency": "BRL",
"balance": 9630.38
},
{
"cardnumber": "5108757163721629",
"cardtype": "visa-electron",
"currency": "CNY",
"balance": 6574.18
}
}
我的问题是 - 我如何分别为所有帐户的所有帐户汇总?我应该用于此地图 - 还原或聚合框架?
使用聚合框架。
这将为您提供一系列具有两个属性的对象,其中id
和balance
其中id
包含用户的名称。
db.document.aggregate([{
$unwind: "$account"
}, {
$group: {
_id: {$concat: [ "$first_name", " ", "$last_name" ]},
"balance": {
$sum: "$account.balance"
}
}
}]);
免责声明:未经测试。
ps:我当然希望这是虚拟信息。这是另一个可能有帮助的答案。