Database

[{"fields":{"field_1":{"name":"f1","first":{"check":true}},"field_2":{"name":"f2","second":{"check":true}},"description":"abc","summary":{"val":"xyz"}}},{"fields":{"field_1":{"name":"f1","second":{"check":false}},"field_2":null,"field_3":{"name":"f3","second":{"check":true},"first":{"check":true}},"description":"lmn","summary":{"val":"abc"}}}]

Query

db.collection.aggregate([{$project:{data:{$objectToArray:"$fields"}}},{$unwind:"$data"},{$match:{"data.v.first.check":true,"data.v.name":{"$exists":true,}}},{$group:{_id:"$data.v.name",values:{$push:{first_group:{$sum:{$cond:[{$eq:["$data.v.first.check",true],},1,0,],},},second_group:{$sum:{$cond:[{$eq:["$data.v.second.check",true],},1,0,]}}}}}}])

Result