1. group by n_id and s1 and show the count :
db.click_20170503.aggregate([{$match:{n_id:25}},{$group : {_id : {"n_id":"$n_id","s1":"$s1", total : {$sum : 1}}}}])
2. show n_id and all its s1 values
db.click_20170503.aggregate([{$group : {_id : "$n_id","s1":{$addToSet : "$s1"}}}])
3. 更直观的 #2 :
db.click_20170503.aggregate([{$group : {_id : {"n_id":"$n_id"},"s1":{$addToSet : "$s1"}}}])
4. $push需要谨慎使用,因为即使是重复的值,也会被push进去.最好使用addToSet
所以使用类似于上面的语句时发现服务器显示了很多内容——因为有很多条记录,每一条记录的s1都被push进去了。
db.click_20170503.aggregate([{$group : {_id : {"n_id":"$n_id"},"s1":{$push : "$s1"}}}])