云数据库文档中,没有提供随机查询的API。
- 需求的场景描述(希望解决的问题)
云数据库文档中,没有提供随机查询的API。
有这么个业务场景,需要从题库中随机抽取10条数据。
1、目前的解决方式是,给数据库每个都添加个tag字段,从1开始,一直自增到数据结尾。然后小程序端生成随机数集合后,通过 _or 来批量查询。但这种方式有个很大的问题,数据库的维护会变得很艰难。比如我删除了一条数据,我就得更新所有的tag。
2、通过 skip 随机数来获取一条数据,但这样我要查十次… 如果后期我需要随机获取100条呢?性能堪忧。
3、更多其他场景:批量抽奖、试题随机选题
- 希望提供的能力
1、mongodb 可以通过命令 db.users.aggregate( [ { $sample: { size: N } } ] )
获取随机的 N 条记录,但我在小程序数据库的API列表中并没有找到类似可以满足需要的API。