我在 Parse 中有 2 个表,如下所示:
Users:
(PFUsers table with all Parse data)
belongsToGroups (A Parse Relation to Groups which is many to many)
Groups:
groupId
name
groupMembers (A Parse Relation to Users which is also many to many)
我有以下代码:
PFObject *groups = [PFObject objectWithClassName:@"Groups"];
groups[@"name"] = name;
syncUsers[@"isActive"] = [NSNumber numberWithInt:1];
//[groups saveInBackground];
PFUser *current = [PFUser currentUser];
PFRelation *relation = [syncUsers relationforKey:@"groupMembers"];
[relation addObject:current];
[groups saveEventually];
PFRelation *relation2 = [current relationforKey:@"belongsToGroups"];
[relation2 addObject:groups];
[current saveEventually];
首先,前 2 个代码块工作正常,但我如何更新 Users 中的关系,以便我可以在 Parse 中执行 View Relation 并查看我的组?
第二,我是否需要在用户和组中创建关系,以便它可以是多对多的?
最佳答案
您可以在关系列
上使用whereKey:equalTo:
并将PFObject
传递给它。这个查询然后将返回在他们的“学生”关系中有这个学生的所有教师对象:
PFQuery *query = [PFQuery queryWithClassName:@"Teacher"];
[query whereKey:@"students" equalTo:student];
在这个例子中,student 是一个 PFObject
,它的 className
匹配“students”中的关系。如果这是 PFUsers
的 relation
并且您要查找当前用户的“Teacher”,您将使用:
PFQuery *query = [PFQuery queryWithClassName:@"Teacher"];
[query whereKey:@"students" equalTo:[PFUser currentUser]];
关于ios - 理解和使用解析多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23262920/