基于云开发的答题活动小程序v2.0-用云开发的聚合能力实现从题库中随机出题功能
项目技术栈
微信原生小程序+云开发。为什么选择微信原生小程序进行开发呢?因为能够直接应用它的云开发能力吖。
我这里主要使用了云开发能力中的小程序端SDK,说白了就是在javascript中就能直接操作数据库。
本篇前言
基于云开发的答题活动小程序v2.0的源码地址,以及手把手教你搭建答题活动小程序v1.0系列文章目录,均在【基于云开发的答题活动小程序v2.0,终于赶在11月最后一天完成了】这篇文章的底部。
还记得我在答题活动小程序v1.0的时候,是怎么实现用云开发实现查询题库功能吗?不记得的话,可以重温一下这篇文章【手把手教你搭建消防安全答题小程序-用云开发实现查询题库功能】,这种是顺序出题的方式。
现在答题活动小程序v2.0版本,要换成随机出题方式,所以,我使用了云开发的聚合能力实现从题库中随机出题功能。
先查文档
通读文档,我们先对实现原理有个大概了解。有针对性的简单地看看几个相关的概念,暂时看不懂也没关系,可以只关注后面的实战部分。
1、数据库聚合能力说明
聚合是一种数据批处理的操作。有了聚合能力,可以方便的解决很多没有聚合能力时无法实现或只能低效实现的场景,这类场景的例子有:分组查询、随机选取、去重......
2、数据库Aggregate
Aggregate,数据库集合的聚合操作实例。
3、涉及到的方法
(1)Collection.aggregate(): Aggregate
发起聚合操作,定义完聚合流水线阶段之后需调用 end 方法标志结束定义并实际发起聚合操作。
(2)Aggregate.match(object: Object): Aggregate
聚合阶段。根据条件过滤文档,并且把符合条件的文档传递给下一个流水线阶段。
(3)Aggregate.sample(size: number): Aggregate
聚合阶段。随机从文档中选取指定数量的记录。
(4)Aggregate.end(): Promise
推荐阅读
- 赠己诗
- 深入理解Go之generate
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 基于|基于 antd 风格的 element-table + pagination 的二次封装
- 八、「料理风云」
- 西湖游
- 两短篇
- 9531
- NeuVector 会是下一个爆款云原生安全神器吗()