无法获取超过10k的记录

时间:2013-02-10 14:10:54

标签: iphone ios xcode parse-platform

我正在开发一个应用程序,我在解析中将一个以上的记录添加到一个类中。现在我尝试使用PFQuery获取这些记录(我使用的是“ skip ”属性)。但我无法获取超过10k的记录,我收到以下错误消息

“不允许超过10000次跳过

这对我来说是个大问题,因为我需要所有的数据。

有没有人遇到过这样的问题。请分享您的观点。

由于

2 个答案:

答案 0 :(得分:3)

问题确实是由于mongo skip操作的成本。您可以制定查询,以便不需要跳过运算符。我首选的方法是orderBy objectId然后添加一个条件objectId>最后产生了objectId。这种类型的查询可以被索引并保持快速,这与跳过分页不同,后者在搜索中具有O(N ^ 2)成本。

答案 1 :(得分:1)

我的假设是它基于MongoDB skip实现的性能问题。

  

cursor.skip()方法通常很昂贵,因为它要求服务器从集合或索引的开头走,以在开始返回结果之前获取偏移或跳过位置。随着偏移量(例如上面的pageNumber)的增加,cursor.skip()将变得更慢并且CPU密集度更高。对于较大的集合,cursor.skip()可能会成为IO绑定。