Database

[{level:[{currentUser:"f",stages:[{users:["a","b","c"]},{users:["b","d","e"]}]},{currentUser:"g",stages:[{users:["y","x","w"]},{users:["x","v","f"]}]}]}]

Query

db.collection.aggregate([{$set:{myUser:"e",allUsers:{/** flattening all arrays into [a,b,c,b,d,e,y,x,w,x,v,f]*/$reduce:{input:{$reduce:{input:"$level.stages.users",initialValue:[],in:{$concatArrays:["$$value","$$this"]}}},initialValue:[],in:{$concatArrays:["$$value","$$this"]}}}}},{$match:{$or:[{myUser:"e"},{$expr:{$in:["$myUser","$allUsers"]}}]}}])

Result