Database

db={"users":[{uid:"FifUPgoJLOLz872",email:"bobbytables@whatever.com",firstname:"Bobby",lastname:"Tables",role:"admin"}],"roles":[{role:"admin",permissions:[{permission:"MANAGE_DATA",type:"DATA",view:true,add:true,update:true,del:true},{permission:"MANAGE_DATA_ENTRY",type:"DATA",view:true,add:true,update:true,del:true},]}]}

Query

db.users.aggregate([{$match:{uid:"FifUPgoJLOLz872"}},/**matches the user correctly*/{$lookup:{from:"roles",localField:"role",foreignField:"role",as:"Roles"}},{$unwind:"$Roles"},{$project:{user:{uid:"$uid",email:"$email",firstname:"$firstname",lastname:"$lastname",role:"$Roles.role"},permissions:"$Roles.permissions",_id:0}}])

Result