Ios Parse.com查询1000多个对象
我把parse数据库的名称作为时间表,我想从列“intrange”中获取数据,但是我有很多数据,大约5000条记录。我知道我们可以得到的最大查询对象是1000个,但是如何获得超过1000个记录呢? 我写的代码只是对1000的查询Ios Parse.com查询1000多个对象,ios,xcode,swift,parse-platform,xcode6,Ios,Xcode,Swift,Parse Platform,Xcode6,我把parse数据库的名称作为时间表,我想从列“intrange”中获取数据,但是我有很多数据,大约5000条记录。我知道我们可以得到的最大查询对象是1000个,但是如何获得超过1000个记录呢? 我写的代码只是对1000的查询 var query = PFQuery(className: "Timetable") var limit:NSInteger = 1000 var skip:NSInteger = 0 query.limit = lim
var query = PFQuery(className: "Timetable")
var limit:NSInteger = 1000
var skip:NSInteger = 0
query.limit = limit
query.skip = skip
query.orderByAscending("Intake")
query.findObjectsInBackgroundWithBlock
{
(objects:[AnyObject]?, error:NSError?) -> Void in
if error == nil
{
query.findObjectsInBackgroundWithBlock
{
(objects:[AnyObject]?, error:NSError?) -> Void in
if error == nil
{
for object in objects! as [AnyObject]
{
var intakeCode = object["Intake"] as? String
if !self.pickerString.containsObject(object["Intake"] as! String) {
self.pickerString.addObject(object["Intake"] as! String)
}
}
self.pvIntakeCode.reloadAllComponents()
}
else
{
NSLog("Error: %@ %@", error!, error!.userInfo!)
}
}
}
else
{
NSLog("Error: %@ %@", error!, error!.userInfo!)
}
我知道stackoverflow存在这个问题,但我真的不明白它说了什么。(另一个问题来自这里:)。但是我不明白,很抱歉再次问这个问题。1000条记录的限制是有原因的。您永远不需要在一个查询中检索那么多对象,因为这很可能会阻塞您的应用程序并导致性能低下 我可以看到两种情况,为什么要检索所有记录:
query.setLimit(100)
query.setSkip(skip)
第一次运行时,skip为0。对于每一次连续跑步,您将“跳过”增加100
在场景2中,您不希望在客户端上执行此操作。输入后台作业!
@Dato'Mohammad Nurdin我尝试了您编辑的最新代码,它仍然是相同的输出,只从表中获取前1000条记录。我已经为query.limit和query.skip工作过可能的重复项,但是当我跳过时,例如,我首先跳过的值是0,因此在接下来的步骤中,我将根据我的限制进行跳过,所以我将执行skip+=limit,但当我执行此操作时,它只显示1000到1999年之后的结果,而不是0到9999,那么我猜您没有使用skip=0运行第一个查询。用代码更新您的问题以供我们查看。LP,我有一个iOS应用程序,我可能有一个大于1000的查询。从技术上讲,我不需要所有的对象,但我需要一个随机集,这样它们就不能仅仅是前n个对象,而是实际上是随机的。我想查询所有对象(如果大于1000,则运行多个查询),然后按照我的意愿操作它们。嗨@月球漫步者是对的。我认为一次拿太多东西是很糟糕的做法。例如,你有1000000个用户是什么?你真的想一次把它们都拿来吗。你应该使用抽样。例如,如果您需要从1000000个总体中提取1000个随机样本,一个示例是将数字限制为X,等于100,并将“跳过”设置为随机数Y,例如20,提取数据,从数据中提取随机分数Z,然后继续,直到获得所需的1000个随机样本。