mongodb总和阵列文档中的所有相同字段 - 地图降差



我在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
  }
}

我的问题是 - 我如何分别为所有帐户的所有帐户汇总?我应该用于此地图 - 还原或聚合框架?

使用聚合框架。

这将为您提供一系列具有两个属性的对象,其中idbalance其中id包含用户的名称。

db.document.aggregate([{
  $unwind: "$account"
}, {
  $group: {
    _id: {$concat: [ "$first_name", " ", "$last_name" ]},
    "balance": {
      $sum: "$account.balance"
    }
  }
}]);

免责声明:未经测试。

ps:我当然希望这是虚拟信息。这是另一个可能有帮助的答案。

最新更新