Parse platform 在同一PFQuery下收集所有PFRelation

Parse platform 在同一PFQuery下收集所有PFRelation,parse-platform,Parse Platform,我正在使用Parse作为我的后端,目前我正在为我的情况寻找更好的方法。 我将使用Objective-C进行演示,但我没有将其标记为Objective-C,因为它与语言无关。 我的情况如下:我有一个类,我们称它为X。它有一个键,我们称它为Y,它是Z类型的关系(Y)。 我需要得到一个Z的列表。喜欢查询Z(Z是我感兴趣的全部)。 此外,如果可能的话,我希望能够像PFQuery一样限制Z的输出。 总而言之:我需要一个PFQuery能够完成PFQuery的所有功能,例如findobjectsinbackg

我正在使用
Parse
作为我的后端,目前我正在为我的情况寻找更好的方法。
我将使用
Objective-C
进行演示,但我没有将其标记为
Objective-C
,因为它与语言无关。
我的情况如下:我有一个类,我们称它为X。它有一个键,我们称它为Y,它是Z类型的关系(
Y
)。 我需要得到一个Z的列表。喜欢查询Z(Z是我感兴趣的全部)。 此外,如果可能的话,我希望能够像PFQuery一样限制Z的输出。
总而言之:我需要一个
PFQuery
能够完成
PFQuery
的所有功能,例如
findobjectsinbackgroundithblock:
countobjectsinbackgroundithblock
,我将在其中操作的对象,在块中将是
NSArray
类型的

我目前的解决方案是:我想在存在Y的地方查询X(这样我就不会得到X的空对象。只需为每个X加载所有Y并遍历Z的所有数组)


我真的不认为我的解决方案是最好的,希望有人能为我指出另一种适合我的解决方案。

我想这可能就是你想要的:

PFQuery *wsQuery = [PFQuery queryWithClassName:@"Workshop"];
[wsQuery whereKey:@"country" equalTo:@"USA"];  // or whatever your criterias
NSArray *workshops = [wsQuery findObjects];

for (PFObject *workshop in workshops) {
    PFQuery *carsQuery = [workshop relationforKey:@"cars"].query;
    [carsQuery setLimit:5];
    // Add whatever constraints you want here
    NSArray *wsCars = [carsQuery findObjects];
    for (PFObject *car in wsCars) {
        NSLog(@"Car make: %@", [car objectForKey:@"make"]);
    }
}
这将首先获得所有车间的列表,然后每个车间将获得属于该车间的所有汽车的列表,并打印每辆汽车的品牌

更新

根据评论提出的新建议:

PFQuery *wsQuery = [PFQuery queryWithClassName:@"Workshop"];
[wsQuery whereKey:@"country" equalTo:@"USA"];

PFQuery *carQuery = [PFQuery queryWithClassName:@"Car"];
[carQuery whereKey:@"workshop" matchesQuery:wsQuery];
[carQuery setLimit:5];
[carQuery findObjectsInBackgroundWithBlock:^(NSArray *cars, NSError *error) {
    // cars contains only cars with workshops located in USA 
}];

我很难理解你想要的是什么。你能试着用一个更普通的例子来解释对象(比如汽车、零件、书籍、作家、专辑、艺术家等)而不是XYZ吗?也许这对我来说太早了,但是……哦,好吧:-)让我们假设X是一个汽车车间,Y是汽车的亲缘关系,Z是汽车的类型。我需要一个查询,这样我就只有符合我在车间查询的汽车了。我想这应该可以。。。清晨又一次。如果不好的话,那么,你想要一份汽车清单,但只想要那些。。。什么?仅限特定车间列表中的车辆?如果车间符合标准,把他们的车给我好吗?您可以提供一些您已经在尝试的代码,或者一些伪代码吗?或者只提供确切的用例:-)我想要没有任何标准的汽车列表。其母班、车间符合标准。就像所有的汽车,他们的车间在美国。我没有一个假货。。。因为我在如何提高效率方面真的很倒霉如果你仍然不明白,请告诉我,我会更新我的问题谢谢你的回答,但这是我说的答案,它缺少一些功能。喜欢极限。e、 g.如果我只想要5辆车,他们的车间在美国。请注意,这是最有效的方式吗?他们的车间在美国是车间查询的一部分。但是请注意,关系查询仍然是一个查询,因此您也可以向该查询添加约束。如果您提供了您想要的确切场景,我可以尝试编辑查询以匹配您的用例。编辑我的答案以在Carsquery中包含一个约束条件,该约束条件将为我提供每个研讨会的5个场景。我总共需要5个。算一算?你想要所有车间总共有5辆车,即使可能有20辆?您将如何确定返回哪5个?