基于云开发的答题活动小程序v2.0-排行榜页面用云开发能力实现查询答题成绩并进行排名的功能

本文介绍了如何使用微信原生小程序结合云开发能力,实现一个消防知识答题活动的排行榜功能。开发者通过小程序端SDK操作数据库,利用Collection的方法进行查询和排序,展示每日不限次数答题的用户成绩。关键代码展示了按总分数降序排列的查询过程,实现了实时更新的排行榜。此功能在各类小程序中具有广泛的应用价值。
摘要由CSDN通过智能技术生成

项目技术栈

微信原生小程序+云开发。为什么选择微信原生小程序进行开发呢?因为能够直接应用它的云开发能力吖。

我这里主要使用了云开发能力中的小程序端SDK,说白了就是在javascript中就能直接操作数据库。

本篇前言

基于云开发的答题活动小程序v2.0的源码地址,以及手把手教你搭建答题活动小程序v1.0系列文章目录,均在【基于云开发的答题活动小程序v2.0,终于赶在11月最后一天完成了
这篇文章的底部。

项目需求

此次的消防知识竞答活动,每人每天答题机会不限次数,成绩由高到低进行排名。奖项设一等奖2名、二等奖5名、三等奖10名、优秀奖20名。

技术要点

1、Collection

  • 指数据库集合引用。

2、Collection.where(condition: Object): Collection

  • 指定查询条件,返回带新查询条件的新的集合引用。

3、Collection.orderBy(fieldPath: string, string: order): Collection

  • 指定查询排序条件。

  • order 只能取 asc 或 desc。

  • 同时也支持按多个字段排序,多次调用 orderBy 即可,多字段排序时的顺序会按照 orderBy 调用顺序先后对多个字段排序。

4、Collection.get(): Promise<Object>

  • 获取集合数据,或获取根据查询条件筛选后的集合数据。

  • 小程序端:如果没有指定 limit,则默认且最多取 20 条记录。

  • 小程序端兼容 Callback 风格调用。

关键代码

按答题成绩totalScore字段进行排降序(totalScore越大越靠前)

getRankList() {
    // 数据库集合的聚合操作实例
    activityScore
    .where({
      _openid: _.exists(true)
    })
    .orderBy('totalScore', 'desc')
    .get()
    .then(res => {
      // 获取集合数据,或获取根据查询条件筛选后的集合数据。
      console.log('[云数据库] [排行榜] 查询成功')
      console.log(res.data)
      let data = res.data || [];
      
      // 将数据从逻辑层发送到视图层,通俗的说,也就是更新数据到页面展示
      this.setData({
        rankList:data
      });
    })
  }

实现结果

本篇小结

作为小程序创作者,排行榜无论是在答题小程序中,还是别的应用场景中,实在是太常见了。所以,关于排行榜的一点延展的思考。

需要根据自身产品采用适合的设计方式,结构上避免散乱、信息上避免过多的信息干扰。对于许多产品而言,榜单对于商业化有着不小的商业价值。

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mon_star°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值