Database
[{"object_name":"Good","values":[{"name":"value1","value":100},{"name":"value2","value":35},{"name":"total","value":105}]},{"object_name":"Example","values":[{"name":"value1","value":1},{"name":"value2","value":10},{"name":"total","value":105}]}]
Query
db.collection.aggregate([{$addFields:{tmp:{$arrayToObject:{$map:{input:"$values",as:"value",in:{k:"$$value.name",v:"$$value.value"}}}},name:1}},{$match:{$expr:{$and:[{$gt:[{$divide:["$tmp.value1","$tmp.total"]},0.5]},{$gt:[{$divide:["$tmp.value2","$tmp.total"]},0.25]},{$gt:["$tmp.total",100]}]}}},{$project:{tmp:0}}])