问题:超过1000人的答题,如何获取答题名次
规则:按得分排名,得分大的排前面,得分相同的按用时排名,用时少的的排前面
已知:答题得分,答题用时
求解:用户排名
逻辑:先取大于该用户的分数的人数,再取等于该用户分数的人里面时间小于该用户人数,两个相加再加1
序号 得分 用时(秒)
01 100 25
02 100 30
03 90 20
04 100 10
db.collection(‘historys’)
.where({
num: _.gt(event.num)
})
.count()
求得num1
db.collection(‘historys’)
.where({
num: _.eq(event.num),
time: _.lt(event.time)
})
.count()
求得num2
排名 = num1 + num2 + 1
参考
在线答题小程序技术方案征集?? - 微信开放社区 https://developers.weixin.qq.com/community/develop/doc/0006e071ab88a049a56bdc1c251000
探讨答题小程序排名的计算逻辑问题? - 微信开放社区 https://developers.weixin.qq.com/community/develop/article/doc/000462c0848e782eee6ba916f56813