CNode

在开发排行榜功能,怎么得出自己排在第几名呢,排行榜实时变化的。 用的数据库是mongodb

问答
Wwhw1988发布于10 年前最后回复10 年前10 回复6544 浏览0 收藏

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

查看回复

回复 (10)

H
HelloKevinTian#1·10 年前

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

W
weierbufan#2·10 年前

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

N
NextZeus#3·10 年前

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

redis sorted

W
whw1988#7·10 年前
引用 NextZeus用数据库去做排行榜吗 ? 我有用redis 去实现过排行榜。 redis 中有个适合排序的结构 zset,建议还是用redis去做。 这是我写的pvp ranking包 redis sorte...

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

W
whw1988#8·10 年前
引用 HelloKevinTian按排序规则取出排名数组,然后取自己的index index+1就是自己名次。

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

H
hunnble#10·10 年前

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

参与回复
登录后即可参与回复。登录