我有这种情况:
一篇文章可能有很多评论。所以我在Parse.com中创建了一个Post类和一个Comment类。以下是定义或类及其数据:
一个帖子:
该帖子有两条评论:
我想使用特定作者的第一条评论来检索帖子。这是我的代码:
PFQuery *query = [PFQuery queryWithClassName:@"Post"];
[query orderByAscending:@"createdAt"];
[query findObjectsInBackgroundWithBlock:^(NSArray *posts, NSError *error) {
for (PFObject* obj in posts) {
PFRelation* comments = [obj objectForKey:@"comment"];
PFQuery* theQuery = [comments query];
[theQuery whereKey:@"author" equalTo:@"John"];
[theQuery getFirstObjectInBackgroundWithBlock:^(PFObject *comment, NSError *error) {
NSLog(@"Post title=%@,body=%@", [obj objectForKey:@"title" ],[obj objectForKey:@"body"]);
NSLog(@"Comment content=%@",[comment objectForKey:@"content"]);
}];
}
}];
虽然它有效,但我认为它并不高效。查询完成时很难判断,因为有两个嵌套的异步调用。
有没有人有更好的解决方案?感谢。
修改
我认为它效率不高的原因是因为存在嵌套查询。但我不知道如何使用Relation获得我想要的东西。也许我不应该使用关系?相反,我应该将Post的ObjectId分配给Comment类? (但这种方法并不像输入数据中的关系那么容易)
答案 0 :(得分:1)
建议对于多对多的关系类型,对于一对多"指针"和"阵列"推荐