Database
[{values:[{"id":"123","val":true},{"id":"456","val":true},{"id":"789","val":false},]},{values:[{"id":"123","val":true},{"id":"123","val":true},{"id":"123","val":false},]},{values:[{"id":"234","val":false},{"id":"567","val":false}]}]
Query
db.collection.find({values:{"$elemMatch":{val:true}},$expr:{$cond:[{$gte:[{$reduce:{input:"$values",initialValue:0,in:{$sum:["$$value",{$cond:[{$eq:["$$this.val",true]},1,0]}]}}},2/** x amount of instances*/]},{$gte:[{"$size":{$setUnion:["$values.id"]}},2/** x amount of instances*/]},false]}})