Database

[{_id:"000-0000-0001",Roles:{/**EngagementId*/"0000-0000-0011":[/**RoleId*/"0000-0000-0111","0000-0000-0112","0000-0000-3333"],"0000-0000-0012":["0000-0000-0121","0000-0000-0112"]}},{_id:"000-0000-0002",Roles:{"0000-0000-0021":["0000-0000-0222","0000-0000-0112"],"0000-0000-0022":["0000-0000-0121","0000-0000-0112"],"0000-0000-0023":["0000-0000-0121","0000-0000-0112","0000-0000-3333"]}}]

Query

db.collection.update({"Roles":{"$exists":true}},[{"$set":{"Roles":{"$arrayToObject":{"$map":{"input":{"$objectToArray":"$Roles"},"as":"roleKV","in":{"k":"$$roleKV.k","v":{"$cond":[{"$and":[{"$in":["0000-0000-0112","$$roleKV.v"]},{"$in":["0000-0000-3333","$$roleKV.v"]}]},{"$filter":{"input":"$$roleKV.v","cond":{"$ne":["$$this","0000-0000-3333"]}}},"$$roleKV.v"]}}}}}}}],{"multi":true})

Result