这是我正在尝试做的一个例子。我当前的用户为PFUser,在另一个名为Item的类上,我有一个名为“所有者”的关系,它是PFUser的关系。我想查询在关系中具有当前用户的Item的所有实例。
我看到了相反查询方式的示例,但没有看到如何获取关系,然后将其过滤为关系上的PFUser匹配项。这是一个例子。
https://www.parse.com/questions/inverse-relationship-support
PFObject Teacher = ... // //“教师”类的PFObject PFRelation studentsRelation = [教师关系forKey:@“students”]; PFQuery * query = studentsRelation.query; [查询findObjectsInBackground:...
就我的例子而言,我会这样做...
PFObject item = [PFObject objectWithClassName:@"Item"];
PFRelation relation = [parseObject relationforKey:@"owner"]; // Filter to PFUser?
[query findObjectsInBackground:...
我可以使用whereKey,但是我该怎么用?我在objectId上匹配吗?
[query whereKey:@"objectId" equalTo:user.objectId];
我不断收到错误102:RelatedTo运算符需要一个有效的指针。我的猜测是,由于我是从一个空对象开始的,所以没有起点。教师示例必须从填充的实例开始。我唯一填充的是PFUser。必须有一种方法来查询Item实例,并根据它与当前用户所拥有的“所有者”关系对其进行过滤。我无法弄清楚,也没有找到如何执行此查询的示例。
这个问题也在Parse.com上:https://parse.com/questions/how-do-i-query-using-pfrelation-when-i-just-have-pfuser
最佳答案
您可以在关系列上使用whereKey:equalTo:
,并将其传递给PFObject
。然后,此查询将返回所有在其Teacher
关系中具有此student
的"students"
对象:PFQuery *query = [PFQuery queryWithClassName:@"Teacher"];[query whereKey:@"students" equalTo:student];
在此示例中,student
是具有与PFObject
中的关系匹配的className的"students"
。如果这是PFUser
的关系,并且您正在寻找当前用户的"Teacher"
,则可以使用:PFQuery *query = [PFQuery queryWithClassName:@"Teacher"];[query whereKey:@"students" equalTo:[PFUser currentUser]];
此答案还发布在Parse的社区论坛上:https://parse.com/questions/how-do-i-query-using-pfrelation-when-i-just-have-pfuser
关于parse-platform - 解析:当我只有PFUser时,如何使用PFRelation查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17331572/