Database

[{"array_of_objects":[{"city":"Seattle","array_1":[],"object_1":{"name":"Mandy","text":""},"object_2":{"name":"Billy","text":""}}]},{"array_of_objects":[{"city":"Seattle2","array_1":[],"object_1":{"name":"Mandy2","text":"text1"},"object_2":{"name":"Billy2","text":"text2"}}]}]

Query

db.collection.aggregate([{$unwind:"$array_of_objects"},{$project:{array_of_objects:{$filter:{input:{$objectToArray:"$array_of_objects"},cond:{$and:[{$ne:["$$this.v.text",""]},{$ne:["$$this.v",[]]}]}}}}},{$match:{"array_of_objects.v.text":{$exists:true}}},{$project:{array_of_objects:{"$arrayToObject":"$array_of_objects"}}}])

Result