首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PFQuery限制查询

PFQuery限制查询
EN

Stack Overflow用户
提问于 2014-05-04 18:55:00
回答 1查看 567关注 0票数 5

我有一个用户,活动,照片类。用户喜欢其他用户附加的活动类https://dl.dropboxusercontent.com/u/33860877/Activity.png的屏幕截图

我的问题是,当用户喜欢超过1000个时,“过滤喜欢”查询的限制将导致下面的方法获得用户已经喜欢的用户,因为活动(喜欢)的数量超过1000。这里应该做些什么来避免这种情况?

代码语言:javascript
复制
-(void) loaddata {

PFQuery *filterUsers = [PFUser query];
[filterUsers whereKey:kMUParseUserAccountStatus equalTo:@"Active"];
filterUsers.limit =1000;


PFQuery *filterLikes = [[PFQuery alloc] initWithClassName:kMUActivityClassKey];
[filterLikes whereKey:kMUActivityUserFromKey equalTo:[PFUser currentUser]];
filterLikes.limit =1000;


PFQuery *query = [[PFQuery alloc] initWithClassName:kMUPhotoClassKey];
[query whereKey:kMUPhotoUserKey notEqualTo:[PFUser currentUser]];
[query whereKey:kMUPhotoPicturePriorityKey equalTo:@(0)];
[query whereKey:kMUPhotoUserKey matchesQuery:filterUsers];
[query whereKey:kMUPhotoUserKey doesNotMatchKey:kMUActivityUserToKey inQuery:filterLikes];
[query includeKey:kMUPhotoUserKey];

[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

    if(!error)
    {

        if(objects.count>0)
        {


            [self updateInformation];

        }


        else
        {
            if(objects.count==0)
            {
                self.hasMorePhotos = false;
            }

        }
    }


}];
}
EN

回答 1

Stack Overflow用户

发布于 2014-05-05 17:32:14

您需要在1000个记录的限制范围内工作。

如果我理解正确的话,您希望显示当前用户还不喜欢的照片。您的解决方案效率不高,因为您在1000个对象的查询中比较一个键(或者,如果限制不是1000,您的解决方案可能需要比较数千个对象)。

如果您需要过滤掉喜欢的照片,您可以在用户上存储一组objectID。当用户喜欢一张照片时,您可以将此objectId添加到user对象上的数组中,或者添加到绑定到用户的另一个对象中。然后,在您的查询中,您可以与此数组进行比较,而不是与另一个查询进行比较:

代码语言:javascript
复制
[query whereKey:@"objectId" notContainedIn:arrayOfLikedObjectIds];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23455369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档