Database

[{_id:"33fa7277-d882-4add-9985-e92c3e48c15b",user_id:"a86302a0-2b5b-4392-95c6-6b41a4d06141",points_total:280},{_id:"33fa7277-d882-4add-9985-e92c3e48c25b",user_id:"a86302a0-2b5b-4392-95c6-6b41a4d06142",points_total:200},{_id:"33fa7277-d882-4add-9985-e92c3e48c35b",user_id:"a86302a0-2b5b-4392-95c6-6b41a4d06141",points_total:20},{_id:"33fa7277-d882-4add-9985-e92c3e48c45b",user_id:"a86302a0-2b5b-4392-95c6-6b41a4d06144",points_total:150}]

Query

db.collection.aggregate([{$group:{_id:"$user_id",points_total:{$sum:"$points_total"}}},{$sort:{points_total:-1}},{$group:{_id:null,users:{$push:{user_id:"$_id",points_total:"$points_total"}}}},{"$unwind":{"path":"$users","includeArrayIndex":"users.rank"}},{$replaceRoot:{newRoot:"$users"}},{$addFields:{rank:{$add:["$rank",1]}}}])

Result