Database
[{"fields":{"field_1":{"name":"f1","first":{"check":true}},"field_2":{"name":"f2","second":{"check":true}},"field_3":{},"field4":{"name":"f4","second":{"check":true}}}},{"fields":{"field_1":{"name":"f1","second":{"check":false}},"field_2":{"name":"f2","second":{"check":true},"first":{"check":true}},"field3":{"name":"f3","second":{"check":true}}}}]
Query
db.collection.aggregate([{$project:{fields:{$map:{input:["$fields.field_1","$fields.field_2"],as:"field",in:{_id:"$$field.name",first_group:{$convert:{input:"$$field.first.check",to:16,onNull:0}},second_group:{$convert:{input:{$and:[{$eq:[{$type:"$$field.first.check"},"missing"]},"$$field.second.check"]},to:16,onNull:0}}}}}}},{$unwind:"$fields"},{$group:{_id:"$fields._id",first_group:{$sum:"$fields.first_group"},second_group:{$sum:"$fields.second_group"}}},{$group:{_id:null,data:{$push:{_id:"$_id",values:[{first_group:"$first_group",second_group:"$second_group"}]}}}}])