2016-08-03 97 views

回答

1

使用aggregation$unwind$group階段,在那裏你可以$sum算術運算符

db.players.aggregate([ 
    { 
    $unwind: "$badges" 
    }, 
    { 
    $group: 
     { 
     _id: "$badges", 
     count: { $sum: 1 } 
     } 
    } 
]); 

上收集players與文件總結徽章

{ "username" : "player101", "badges" : [ "score10", "score100" ] } 
{ "username" : "player102", "badges" : [ "score11", "score100" ] } 
{ "username" : "player103", "badges" : [ "score11", "score101" ] } 
{ "username" : "player104", "badges" : [ "score12", "score100" ] } 

給你結果

{ "_id" : "score101", "count" : 1 } 
{ "_id" : "score11", "count" : 2 } 
{ "_id" : "score12", "count" : 1 } 
{ "_id" : "score100", "count" : 3 } 
{ "_id" : "score10", "count" : 1 } 
相關問題