很实用的,随机获取数据列表

我的应用中也有获取随机数据的场景。
目前没有好的思路。

确实是,非常多的应用场景需要获取符合条件的随机数据.比如很多用户发的状态,新用户登录,需要从记录中随机获取一条,用时间去随机虽然可行,但是实现方案并不是很好,因为我也无法得知哪个时间点有未读状态.希望官方能够提供根据查询条件,能够获取随机结果的接口.

是的,建议增加随机方法

我也碰到这个问题,神烦中

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 的第一个对象。

1 人赞了这个帖子.

你好 ,现在有随机获取数据这一方法了吗?

五年了,有随机获取了吗?

现在还是没有。建议您采用之前 jysperm 的思路「随机一个时间点来查之后的第一条数据」自行实现。