db.user.aggregatet([ { $sort:{score: -1} }, { $group:{ _id:null, users:${ $push:{nickname:"$nickname", score: "$score"} }, count: {$sum:1}, } }, { $project:{ _id:0, rank:{$indexOfArray:["$users.nickname", "游客456""]} } } ])
在user表中, 根据score从大到小, 查询玩家 游客456 的名次,
根据玩家名字与分数分组, 使用indexOfArray查询玩家排第几, 返回的rank是从0开始计算的