Database

[{_id:1,objects:[{prop_1:"...",foo:"a"},{prop_1:"...",foo:"a"},{prop_1:"..."}]},{_id:2,objects:[{prop_1:"...",foo:"a"},{prop_1:"...",foo:"a"},{prop_1:"..."}]},{_id:3,objects:[{prop_1:"...",foo:"a"},{prop_1:"...",foo:"a"},{prop_1:"...",foo:"a"}]}]

Query

db.collection.aggregate([{$match:{$expr:{$eq:[true,{$reduce:{input:"$objects",initialValue:true,in:{$and:["$$value",{$eq:["$$this.foo","a"]}]}}}]}}}])

Result