有没有方法实现随机获取API数据?orderByDescending("random")如果能这样实现随机排序 不是很方便吗 ?
暂时不提供这个功能,请大家在获取数据的时候自行随机 skip,就可以随机获取数据了。By @ycui
没人回答?
实现方法取决于具体的应用场景以及对概率分布的要求。其实很少有场景是要求绝对随机的。比如你可以随便取一个时间点,然后取那之后创建的第一条数据。
很多场景需要,比如 美拍 和 快手 , 在热门列表中, 每次刷新 都会获取随机的热门列表
很实用的,随机获取数据列表
我的应用中也有获取随机数据的场景。目前没有好的思路。
确实是,非常多的应用场景需要获取符合条件的随机数据.比如很多用户发的状态,新用户登录,需要从记录中随机获取一条,用时间去随机虽然可行,但是实现方案并不是很好,因为我也无法得知哪个时间点有未读状态.希望官方能够提供根据查询条件,能够获取随机结果的接口.
是的,建议增加随机方法
顶顶顶!强烈建议增加随机方法
我也碰到这个问题,神烦中
是的,强烈建议增加随机方法~~
skip(random)
影响性能但是满足功能
感谢反馈,我们内部会进一步讨论这个需求。
请问这个是哪里的方法,如何才能调用呢
var query = new AV.Query(ClassName);query.skip(random);query.find();
如果 random 比较大的话,性能是很差的。建议还是随机一个时间点来查之后的第一条数据。
对。如果只是随机的话,随机时间然后query.greatethan('createdAt', randomTime);query.first()是一个比较好的解决办法。
我目前的做法是先用count统计总数,然后在随机用skip跳过,但是不知道count算不算一次请求次数,如果算,就有点浪费了。强烈建议增加随机获取方法!!!
query.count 算 1 次 API 请求
用 skip 很影响性能。
建议你给每个对象增加一个值为 0.0 ~ 1.0 之间的随机浮点数的属性 randProp。要随机取一个对象的时候,生成一个 0.0 ~ 1.0 之间的随机数 randNum,然后用查询找按 randProp 排序后 randProp > randNum 的第一个对象。
randProp
randNum
randProp > randNum