在开发排行榜功能,怎么得出自己排在第几名呢,排行榜实时变化的。 用的数据库是mongodb
发布于 8 年前 作者 whw1988 5520 次浏览 来自 问答

在开发排行榜功能,怎么得出自己排在第几名呢,排行榜实时变化的。 用的数据库是mongodb,How to calculate row number in MongoDB for sorted query?

10 回复

按排序规则取出排名数组,然后取自己的index index+1就是自己名次。

获取自己的只需要在数据库中根据userid之类的字段查找自己的排名信息就好了啊,如果是取前几只需在Mongodb中把排名这个字段加索引应该就行了。。不知道是不是你要的。

用数据库去做排行榜吗 ? 我有用redis 去实现过排行榜。 redis 中有个适合排序的结构 zset,建议还是用redis去做。 这是我写的pvp ranking包

redis sorted

@weierbufan 没有实时的纪录当前用户的排名呢,是根据用户的资金排行的呢,资金一直在变化呢

@weierbufan 然后你现在只知道 当前用户的资金是多少 比如100元,怎么知道他的资金排在第几名呢

@NextZeus 没有实时的纪录当前用户的排名呢,是根据用户的资金排行的呢,资金一直在变化呢。 然后你现在只知道 当前用户的资金是多少 比如100元,怎么知道他的资金排在第几名呢。

@HelloKevinTian 没有实时的纪录当前用户的排名呢,是根据用户的资金排行的呢,资金一直在变化呢。 然后你现在只知道 当前用户的资金是多少 比如100元,怎么知道他的资金排在第几名呢。

@whw1988 @NextZeus 说的是比较好的办法,如果变动了资金或积分,直接写到redis了,就是实时的了

数据库每次变动的时候获取排名就可以了吧。。。可以在数据库里加一个计数器来记排名

@hunnble 何必要再费周折 搞个计数器呢

回到顶部