小程序云开发 聚合aggregate sort问题
背景:
我们公司是培训机构,我维护了一个刷题的小程序,今天运营同学跟我反馈,我们的顺序刷题模块出现了问题,让我排查下,
具体我们的数据如下所示:
首先我们顺序刷题在实现的时候,我是按照_id来正序 排序的
我们的题库结构如下图所示
~
解释:
集合的_id是字符串类型,我是安排时间+序号拼接的,当时考虑的时候也觉得没有哪个题库会有1000道题,所以在设计的时候,序号就给了3位数,
xxx001
xxx002
xxx999
xxx1000
这样就存在了一个问题,当我们的题库多余1000道题目的时候,编号中的序号位,位数就不一样了,有 的三位数,有的四位数
作为字符串而言,他们排序的时候
xxx999,就排到xxx1000的后面了,因为是9和1 的比较,9大,1小,xxx1000排到前面了
~
刷题界面如下所示
~
在运营同学给我的录屏视频中,用户是做到了189的序号这里
0~189,其实用户做了190个题,下次从第191个题开始,也就是下图的1081题
~
在这里有个细节
xxx109之后的110,111,112这些序号其实是在1000之后的109
110
111
112
1000
比较的话,111,112都是在后面的