Database
db={zip:[{_id:1,zipcode:63109,students:[{name:"john",school:102,age:10},{name:"jess",school:102,age:11},{name:"jeff",school:108,age:15}]},{_id:2,zipcode:63110,students:[{name:"ajax",school:100,age:7},{name:"achilles",school:100,age:8},]},{_id:3,zipcode:63109,students:[{name:"ajax",school:100,age:7},{name:"achilles",school:100,age:8},]},{_id:4,zipcode:63109,students:[{name:"barney",school:102,age:7},]}]}
Query
db.zip.aggregate([{$match:{zipcode:63109}},{$set:{students:{$filter:{input:"$students",cond:{$eq:["$$this.school",102]}}}}},{$match:{"students.0":{$exists:true}}}])