Database

[{"group_id":"ABC","revenue":100,"account":1},{"group_id":"ABC","revenue":200},{"group_id":"ABC","revenue":200},{"group_id":"ABC1","revenue":200}]

Query

db.collection.aggregate([{$match:{group_id:"ABC"}},{"$group":{_id:"$id",group_id:{$first:"$group_id"},account:{$first:"$account"},revenue:{"$push":{"revenue":"$revenue","account":"$account"}}}},{"$project":{_id:0,group_id:1,account:1,total_revenue:{$filter:{input:"$revenue",as:"item",cond:{$ne:[{$type:"$$item.account"},"missing"]}}},total_gl:{$filter:{input:"$revenue",as:"item",cond:{$eq:[{$type:"$$item.account"},"missing"]}}}}},{"$project":{group_id:1,account:1,total_revenue:{$sum:"$total_revenue.revenue"},total_gl:{$sum:"$total_gl.revenue"}}}])

Result