Database
[{"prop1":"some value","prop2":"another value","array1":[{"field_a":"value_a","field_b":"value_b","array2":[]},{"field_a":"value_a","filed_b":"value_b","array2":[]},{"field_a":"value_a","field_b":"value_b","array2":[{"key1":"value1","key2":"value2","key3":"value3"},{"key1":"value1","key2":"value2","key3":"value4"}]},{"field_a":"value_a","field_b":"value_b","array2":[{"key1":"value1","key2":"value2","key3":"value3"},{"key1":"value1","key2":"value3","key3":"value4"}]}]}]
Query
db.collection.aggregate([{$match:{"array1.array2.key3":"value4"}},{$project:{variable:{$first:{$filter:{input:{$reduce:{input:"$array1",initialValue:[],in:{"$concatArrays":["$$value","$$this.array2"]}}},as:"item",cond:{$eq:["$$item.key3","value4"]}}}}}},{$unset:"variable.key3"}])