Database

db={"coll1":[{/**document1*/"_id":NumberLong(1),"my_array":[{"property1_int":123,"property2":"hi"},{"property1_int":124,"property2":"hi"},{"property2":"hi"}],},{/**document2*/"_id":NumberLong(2),"my_array":[{"property1_int":123,"property2":"hi"},{"property2":"hi"},{"property2":"hi"}],}]}

Query

db.coll1.aggregate([{"$unwind":"$my_array"},{"$match":{"my_array.property1_int":{"$exists":true}}},{"$group":{"_id":"$_id","my_array":{"$push":"$my_array"}}},{"$match":{"my_array.1":{/** this will check that the position 1 of the array exist, so its length its <=2*/"$exists":false}}}])

Result