Database

[{_id:1,array:[{attribute_1:[],attribute_2:[]},{attribute_1:["foo"],attribute_2:[]}]},{_id:2,array:[{attribute_1:[],attribute_2:[]},{attribute_1:[],attribute_2:[]}]},{_id:3,array:[{attribute_1:[],attribute_2:[{}]}]}]

Query

db.collection.aggregate([{$unwind:"$array"},{$match:{$and:[{"array.attribute_1.0":{$exists:true}},{$or:[{"array.attribute_2.0":{$exists:false}},{"array.attribute_2.0":{$eq:{}}}]}]}}])

Result