我试图通过以下查询
从解析表中获取结果NSInteger skip = self.objectsArray.count;
PFQuery *innerQuery = [PFUser query];
[innerQuery whereKey:@"objectId" equalTo:[PFUser currentUser].objectId];
PFQuery *query = [PFQuery queryWithClassName:@"HubObjects"];
[query whereKey:@"isActive" equalTo:[NSNumber numberWithBool:YES]];
[query whereKey:@"Location" nearGeoPoint:self.location withinMiles:200];
[query whereKey:@"Hub" equalTo:self.hub];
[query whereKey:@"RTUser" doesNotMatchQuery:innerQuery];
[query orderByDescending:@"Points"];
query.skip = skip;
query.limit = 3;
[query findObjectsInBackgroundWithBlock:^(NSArray *HubObjects, NSError *error) {
if (!error) {
//do success stuff
} else {
//do error stuff
}
}];
它说基本上给了我一定范围内的对象数组,重要的是要注意的是query.limit,query.skip和orderByDescending
这会按预期返回,但是对于orderByDescending,它会为我提供"最低点"因为它应该首先返回具有最高点的对象,所以进一步的结果(分页)会给出第一次重复的结果。
我尝试使用orderByAscending来提供正确的行为(首先是最低点对象,而进一步分页会给出具有更高点的新对象),我也尝试删除限制约束,它以正确的顺序给出整个对象列表(从最高点到最低点) )
问题是如何按期望(从最高到最低)并没有重复的方式对结果进行分页(带限制)?
答案 0 :(得分:3)
经过大量调查。 : - )
似乎地理点搜索覆盖了排序顺序。我认为情况可能就是这样,但我找不到我读过的文档。
我不认为使用iOS查询可以解决这个问题。
您最好的解决方案可能是编写云代码函数来返回您需要的信息。
否则删除geopoint约束并在之后使用。
由于