2016-02-10 52 views
1

我有這樣MongoDB中的文檔:以「姓氏」和「accounts.account_type」,總結每一個相關的平衡我可以使用點符號在mongoDB中彙總嵌入式文檔嗎?

{ 
     "_id" : ObjectId("56b88d5f2628a6bca1b17f99"), 
     "first_name" : "JAMES", 
     "last_name" : "SMITH", 
     "accounts" : [ 
       { 
         "account_type" : "Savings", 
         "account_balance" : 8995952.153640702, 
         "currency" : "PESO" 
       }, 
       { 
         "account_type" : "Checking", 
         "account_balance" : 3901436.5580737568, 
         "currency" : "USD" 
       } 
     ] 
} 

我想組。

我試着點符號這樣的,但我有錯誤,我無法找到這種類型的聚合的解釋:

db.bank_data.aggregate([ 
{$group:{_id: "$last_name",accounts.account_type:"$accounts.acount_type", 
total:{$sum:"$accounts.account_balance"}}}]) 

回答

3

考慮先放鬆身心的聚集管道賬號字段,然後分組使用如下所選擇的屬性。

db.bank_data.aggregate([ 
     {$unwind: '$accounts' }, 
     {$group: { _id: { last_name : "$last_name" , account_type: "$accounts.account_type" }, 
        total:{$sum:"$accounts.account_balance"} 
       } 
     }]); 
+1

它的工作!感謝您的解決方案。 – Khorshid

相關問題