2016-12-02 100 views
-1

我有我的收藏數集合中的特定領域的occurence數:如下圖所示如何在MongoDB中

{ 
    "_id" : NumberLong(366), 
    "file" : "xyz", 
    "clist" : { 
        "account" : "BFS", 
        "subAccount":"a" 
       }, 
}, 
{ 
    "_id" : NumberLong(366), 
    "file" : "xyz", 
    "clist" : { 
        "account" : "BFS", 
        "subAccount":"b" 
       }, 
}, 
{ 
    "_id" : NumberLong(366), 
    "file" : "xyz", 
    "clist" : { 
        "account" : "HC", 
        "subAccount":"c" 
       }, 
} 

在,我要通過組賬號和計數子賬戶的數量;例如:

{ 
    account : "BFS", 
    subAccount : "b", 
    count : 1, 
    subAccount :"a", 
    count : 1 
} 

如果帳戶BFS,子賬戶b存在兩次的話,我應該得到的輸出是這樣的:

{ 
    account : "BFS", 
    subAccount : "b", 
    count : 2, 
    subAccount : "a", 
    count : 1 
} 
+0

是'clist'你的mongo文件? – nullpointer

+0

嗨克里希納;我編輯了你的問題,使預期的輸出更具可讀性。這不是批評;在這個網站上,每個人都被鼓勵合作,編輯問題以進一步改進。如果您可以添加更多信息,請再次編輯該問題以澄清。 –

回答

0

願這幫助你...

db.coll.aggregate([ { 
    "$group" : { 
     "_id" : { 
      "account" : "$clist.account", 
      "subAccount" : "$clist.subAccount" 
     }, 
     "count" : { 
      "$sum" : 1 
     } 
    } 
}, { 
    $project : { 
     _id : 0, 
     "account" : "$_id.account", 
     "subAccount" : "$_id.subAccount", 
     "count" : "$count" 
    } 
}, { 
    $group : { 
     _id : "$account", 
     "subaccounts" : { 
      "$push" : { 
       "subAccount" : "$subAccount", 
       "count" : "$count" 
      } 
     } 
    } 
} ]) 
相關問題