Parse.com - 查询自定义类中的关系

时间:2014-03-11 13:01:43

标签: ios parse-platform

我有2个类:PFUser和Groups。在"群组" class I我有我的所有组,每个组都有一个名为" Members"的关系键。 "成员"保存与当前组相关的用户列表。

如何查询"会员"键,以便返回一个用户数组?

我过去为用户相关关系做了类似的查询,但后来我只是将PFRelation * friendsRelation = [PFUser currentUser] objectForKey:@" friendsRelation"]传递给查询。

这次不能让它发挥作用。

我最接近的是:

PFQuery *query = [PFQuery queryWithClassName:@"Groups"]; [query whereKey:@"Members" equalTo:[PFUser currentUser]]; [query orderByAscending:@"username"]; [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {…}

P.S。每个用户都将他的组(PFObject)添加为密钥。

2 个答案:

答案 0 :(得分:1)

如何为自定义类执行PFRelation查询:

    //1. Get objectID for object from custom class. Previously added as a key for user.
PFObject *currentGroup = [[PFUser currentUser] objectForKey:@"Group"];

//2. Set relation key for which to do the query.
PFRelation *relation = [currentGroup relationForKey:@"Members"];

PFQuery *membersQuery = [relation query];

//Do the query!
[membersQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {}];

无需定义要执行查询的类。 ObjectID是唯一的。

希望这会对某人有所帮助。

答案 1 :(得分:0)

如果我理解你的问题,你想在同一个«Group»中拥有一系列«Members»。

您的查询与“团体”类有关,而应该是“会员”。你不应该寻找«members»等于[PFUser currentUser],因为在最好的情况下它总是只返回一个项目:PFUser与你的iPhone / iPad链接。

如果您的用户有一个组密钥(让我们将其命名为«OwnerGroup»),那么您可以尝试:

PFQuery *membersQuery = [PFQuery queryWithClassName:@"Members"];
[membersQuery whereKey:@"OwnerGroup" equalTo:currentGroup];
[membersQuery orderByAscending:@"username"];
[membersQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {…}