我有两类Parse对象,A和B.B类对象通过键@"referenceA"
引用了A类对象。
我想执行一个查询,查找由某组对象B引用的所有对象A.
我相信我必须使用2个查询:queryB
是B类的约束查询,它返回这一组特定的对象B,然后queryA
返回找到的对象引用的所有对象按queryB
。
但是,无论是在文档中还是在帖子中,我都无法找到实现这一目标的方法:
[queryA whereKey:@"SELF" matchesKey:@"referenceA" inQuery:queryB];
显然在这里不起作用。我还尝试使用谓词查询但没有成功。
当然我可以在includeKey:@"referenceA"
中使用queryB
加载引用的对象A,但是返回的对象仍然属于B类。因此我不能将这样的queryB
用于{ {1}}中的{1}}显示引用的对象A.
有什么建议吗?
答案 0 :(得分:1)
阅读完评论后,我的问题就在这里。
在我看来,PFQueryTableViewController
会不必要地限制你,因为它会妨碍你做你正在做的事情。例如,它强制您构造一个返回将要显示的对象的查询,并且不提供显示子节点的机制。在我的例子中,我最终将其子类化为添加方法,允许您在从服务器获取并在屏幕上显示之前修改表视图中使用的数据。这允许您从服务器获取B
个对象的列表,使用includeKey
同时下载A
个对象,然后当您从服务器接收数据时,可以修改它作为查询返回的A
对象引用的B
个对象的列表。
如果这是您关心的问题,这将使您能够降低数据库的复杂性。
答案 1 :(得分:0)
同样的问题是answered in the Parse Google group
如果想要(像我一样)使用单个关系查询(whereKey:matchesKey:
),则必须添加一个字符串列,在objectId
中存储referenceA
objectsB
。
太糟糕了,Parse显然无法为这个相当古老的问题提供合理的解决方案。