gpt4 book ai didi

ios - iOS Parse.com内部查询不会获取所有对象

转载 作者:行者123 更新时间:2023-12-01 18:53:14 27 4
gpt4 key购买 nike

我在使用parse.com内部查询时遇到了麻烦。
这是我的代码。

    PFQuery *innerQuery = [PFUser query]; 
[innerQuery whereKey:@"deactive" equalTo:[NSNumber numberWithBool:NO]];
PFQuery *query = [PFQuery queryWithClassName:@"Post"];
[query orderByDescending:@"voteCount"];
[query setLimit:1];
[query whereKey:@"user" matchesQuery:innerQuery];
[query findObjectsInBackgroundWithBlock:^(NSArray objects, NSError error) {

//some code
}];

这是个问题。
在Parse.com中,内部查询的最大限制数也为1000。
在我的代码中,检索User类中的1000个对象并在其中执行查询。
如果用户数超过1000,则其余的其他用户不在内部查询范围内。
所以我无法获得其postCountCount属性最大的post对象。

我该如何解决?
在Parse上不可能吗?

最佳答案

您需要在完成块内重新启动查询。

如果您有1000个结果,则假定还有更多要提取的结果,并使用新参数skip进行另一个查询。 Skip与您所知道的完全相同,但是skip将对X个优先结果进行编码。

因此,您的limit为1000,result为1000和要创建的新query

您必须将limit的值赋予skip的值,以便第二批跳过相同的数字(通常仅为最大值1000)。

重复此操作,直到result计数小于1000,这意味着不再有任何对象可以获取。

设置跳过值与设置限制相同。

[query setLimit:1000];
[query setSkip:1000];

或者如果您喜欢动态
[query setLimit:1000];
[query setSkip:query.limit];

编辑:如果您不需要所有信息,而仅是最重要的信息(通常只是最新的信息),则可以简单地对查询进行排序。
[query orderByAscending:@"createdAt"];   //or descending, or updatedAt, or your own fields

您还可以使用谓词或更多排序描述符来减少请求的大小。

关于ios - iOS Parse.com内部查询不会获取所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29605189/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com