Database
[{id:1,field:"a",},{id:1,field:"a",},{id:1,field:"b",},{id:2,field:"b",}]
Query
db.collection.aggregate([{$group:{_id:"$id",id:{$first:"$id"},countA:{$sum:{$cond:{if:{$eq:["$field","a"]},then:1,else:0}}},countB:{$sum:{$cond:{if:{$eq:["$field","b"]},then:1,else:0}}}}}])