Database

[{"documentKey":"documentData","functions":[{"name":"firstFunction","outerArray":["elements","in","the","array"],"objectsToBeFiltered":[{"objectName":"firstObject","innerArray":["elements","in","the","array"],"columns":["a","b"]},{"objectName":"secondObject","innerArray":["elements","in","the","array"],"columns":["z"]}]},{"name":"secondFunction","outerArray":["elements","in","the","array"],"objectsToBeFiltered":[{"objectName":"firstObject","innerArray":["elements","in","the","array"],"columns":["m"]},{"objectName":"secondObject","innerArray":["elements","in","the","array"],"columns":["a"]}]}],"_id":{"$oid":"5fad1e28b999dc44c88b2fdd"}}]

Query

db.collection.aggregate([{"$addFields":{functions:{$map:{input:"$functions",as:"fld2","in":{name:"$$fld2.name",outerArray:"$$fld2.outerArray",objectsToBeFiltered:{$filter:{input:"$$fld2.objectsToBeFiltered",as:"fld4",cond:{"$in":["a","$$fld4.columns"]}}}}}}}}])

Result