{queid:'1',date:'07023/2013',topic: 'topic1'} {queid:'2',date:'07022/2013',topic: 'topic2'} {queid:'3',date:'07022/2013',topic: 'topic1'} {queid:'4',date:'07023/2013',topic: 'topic1'} que.aggregate([ {$group:{_id:{"topic":"$topic","date":"$date"}, sum:{$sum:1}}}, {$group:{_id:"$_id.topic", "dates":{$push:{"date":"$_id.date", "count":"$sum"}} }} ]) { "result" : [ { "_id" : "topic2", "dates" : [ { "date" : "07022/2013", "count" : 1} ] }, { "_id" : "topic1", "dates" : [ { "date" : "07022/2013", "count" : 1}, { "date" : "07023/2013", "count" : 2} ] } ], "ok" : 1 }