PFQuery限制查询

use*_*139 5 parse-platform

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

我的问题是,当用户喜欢超过1000时,"过滤器喜欢"查询的限制将导致以下方法获得用户已经喜欢的用户,因为活动数量(喜欢)超过1000.这里应该做什么避免这个?

-(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;
            }

        }
    }


}];
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*dal 0

您需要解决 1000 条记录的限制。

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

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

[query whereKey:@"objectId" notContainedIn:arrayOfLikedObjectIds];
Run Code Online (Sandbox Code Playgroud)