Database
[{/**"_id" : ObjectId("some_id"),*/"name":"name","field1":123,"field2":234,"arr":[{"a_num":3,"a1":[{"f1":"000"},{"f1":"120"},{"f1":"012"}],"a2":{}},{"a_num":36,"a1":[{"f1":"120"},{"f1":"012"}],"a2":{"f1":"011"}},{"a_num":34,"a1":[],"a2":{"f1":"000"}}]}]
Query
db.collection.aggregate([{$set:{arr:{$filter:{input:"$arr",cond:{$not:{$or:[{/** Either*$in: [* {* "f1": "000"* },* "$$this.a1"*],* Or*/$in:["000","$$this.a1.f1"]},{$eq:["$$this.a2.f1","000"]}]}}}}}}])