云开发的答题活动小程序如何计算答题排名
发布于 4 年前 作者 fang12 4414 次浏览 来自 分享

问题:超过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

1 回复
回到顶部