Parse数据库返回重复的结果?

时间:2014-07-30 15:22:45

标签: ios objective-c parse-platform

我试图通过以下查询

从解析表中获取结果
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来提供正确的行为(首先是最低点对象,而进一步分页会给出具有更高点的新对象),我也尝试删除限制约束,它以正确的顺序给出整个对象列表(从最高点到最低点) )

问题是如何按期望(从最高到最低)并没有重复的方式对结果进行分页(带限制)?

1 个答案:

答案 0 :(得分:3)

经过大量调查。 : - )

似乎地理点搜索覆盖了排序顺序。我认为情况可能就是这样,但我找不到我读过的文档。

我不认为使用iOS查询可以解决这个问题。

您最好的解决方案可能是编写云代码函数来返回您需要的信息。

否则删除geopoint约束并在之后使用。

由于