【发布时间】:2015-12-11 22:47:32
【问题描述】:
我正在制作排行榜,我的文档具有以下结构:
{
"_id" : ObjectId("566a8ccc5bce504423858ba2"),
"username" : "John Smith",
"score" : 123,
}
当一个玩家输入他的分数时,我正在寻找一种优化的方式来显示他的排名,同时作为排行榜中的前两名和后两名玩家。
E. G。如果我的名字是鲍勃·迪伦
# Name Score
10 J. Smith 128
11 M. Collins 126
12 Bob Dylan 120
13 JAKE 113
14 Mikes 110
然后我的等级是 12。
你知道我怎样才能得到这种数据吗?
我想避免.find().sort({ score: -1});,然后搜索用户。
我可以优化它吗?
【问题讨论】:
-
我认为您不会绕过查询用户得分,然后执行两个额外的查询来分别获得得分较低和得分较高的用户,按得分限制为两个排序。
标签: mongodb mongodb-query