我有一个“Book”类,包含作者,页码,发布日期等一般信息。该类还包含一个数组“localizations”,其中包含指向“BookLocalization”类的多个对象的指针。
每个“BookLocalization”对象都有一个“langageCode”来识别它的语言(en,de,fr,es,...)和其他本地化的信息,如“plot”。
我想查询“Book”类,同时只为其“本地化”获取一个特定的语言(“langageCode”),所以我没有为每个“Book”获取一个包含所有“本地化”的数组
是否可以在一个请求中?这样的要求会真正减轻我的要求。想象一下,如果我支持50个或更多......
我真的很感激任何帮助!
更新:这是我尝试过的没有成功
PFQuery *innerQuery = [PFQuery queryWithClassName:@"BookLocalization"];
[innerQuery whereKey:@"langageCode" equalTo:@"de"];
PFQuery *query = [PFQuery queryWithClassName:@"Book"];
[query whereKey:@"localizations" matchesQuery:innerQuery];
[query whereKey:@"title" equalTo:@"Foundation"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
PFObject *firstObject = (PFObject*)objects.firstObject;
NSLog(@"%@", firstObject[@"localizations"]);
}];
我得到了什么:
(
"<BookLocalization: 0x600000121360, objectId: 87NFuvWcCa, localId: (null)> {\n}",
"<BookLocalization: 0x600000120460, objectId: SzORHjuI0y, localId: (null)> {\n}",
"<BookLocalization: 0x6000001212c0, objectId: qzq7FGDTtI, localId: (null)> {\n}",
"<BookLocalization: 0x600000120640, objectId: jc04H6L3uf, localId: (null)> {\n}"
)
我仍然获得本书的所有本地化,不仅仅是“de”,就像我在这种情况下一样。任何的想法 ?也许我应该以其他方式设计它?
答案 0 :(得分:0)
执行此操作的方法是在BookLocalization上使用innerQuery
形成whereKey:@"languageCode" equalTo:@"de"
,例如,对于德语。
但是你不会明确地运行那个内部查询。而是将其作为参数传递给Book whereKey:@"localizations" matchesQuery:innerQuery
上的查询。在Book上运行此查询将完成工作。
(当然,这里运行的确有两个查询,但是innerQuery是由parse.com运行的,所以从客户的角度来看这是一个请求是公平的)