Database
db={"users":[{_id:"701",username:"user1",roles:["617","618"]},{_id:"702",username:"user2",roles:["617"]},{_id:"703",username:"user3",roles:["617","619"]},{_id:"704",username:"user4",roles:["617","619"]}],"roles":[{_id:"617",name:"simpleuser"},{_id:"618",name:"admin"},{_id:"619",name:"moderator"}]}
Query
db.users.aggregate([{"$lookup":{"from":"roles","let":{"roles":"$roles"},"pipeline":[{"$match":{"$expr":{"$and":[{"$in":["$_id","$$roles"]},{"$eq":["$name","moderator"]}]}}}],"as":"roles"}},{"$match":{"roles":{"$ne":[]}}}])