Database

db={"permissions":[{"_id":"xxxx","name":"Rank 1","permissions":1},{"_id":"xxxxxxxxx","name":"Rank 2","permissions":2},{"_id":"xxxxxxx","name":"Rank 4","permissions":4}],"users":[{"_id":"1234","ranks":["xxxx","xxxxxxxxx"]},{"_id":"4567","ranks":["xxxx","xxxxxxx"]}]}

Query

db.users.aggregate([{$match:{"_id":"1234"}},{$lookup:{from:"permissions",localField:"ranks",foreignField:"_id",as:"ranks"}},{$unwind:"$ranks"},{$group:{_id:"$_id",ranks:{$push:"$ranks._id"},permissions:{$sum:"$ranks.permissions"}}}])

Result