mongo聚合语句的项目准备

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"}}}])

你可能感兴趣的:(mongo聚合语句的项目准备)