Database

[{group_id:1,value:"foo"},{group_id:1,value:"bar"},{group_id:1,value:"bar"},{group_id:1,value:"bar"},{group_id:1,value:"bar"},/**one more added*/{group_id:2,value:"bar"},{group_id:2,value:"foo"},{group_id:2,value:"foo"},{group_id:2,value:"foo"}]

Query

db.collection.aggregate([{$group:{_id:{group_id:"$group_id",value:"$value"},n:{$sum:1}}},{$group:{_id:"$_id.group_id",values:{$push:{value:"$_id.value",n:"$n"}}}},{$project:{group_id:1,best:{$reduce:{input:"$values",initialValue:{n:0,value:""},in:{$cond:[{$lt:["$$value.n","$$this.n"]},"$$this","$$value"]}}}},},{$project:{group_id:1,value:"$best.value",maxValue:"$best.n"}}])

Result