悉野小楼

导航

mongodb查询玩家排名

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开始计算的

posted on 2024-01-03 14:22  悉野  阅读(28)  评论(0编辑  收藏  举报