簡體   English   中英

Mongodb將數組foreach文檔中的所有相同字段相加-Map-Reduce

[英]Mongodb sum all the same fields in array foreach document - Map-Reduce

我的數據庫中有這樣的文檔:

{
"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
  }
}

我的問題是-如何分別計算每個人的所有帳戶余額? 我應該用於此Map-Reduce或Aggregation Framework嗎?

使用聚合框架。

這將為您提供具有兩個屬性( idbalance的對象數組,其中id包含用戶名。

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

免責聲明:未經測試。

附:我當然希望那是假信息。 這是另一個可能被證明有用的答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM