2015-11-02 35 views
1

我有UserGroupMember类与解析。Parse.com嵌套查询包含doesNotMatchQuery

我在GroupMember类一个加入User指针列和想从User类获取所有用户,但不包括其存在于GroupMember类关系。

+0

请你举一些例子,如GroupMember有这些行和列,用户有以下的行和列在他们的值。这些值中的假数据将起作用。我们只需要知道您正在寻找的具体逻辑,以便我们可以给您最好的答案。 –

回答

1

您必须进行两个查询,其中您从GroupMember的指针列中查询所有用户objectId,然后从User类的下一个查询中排除这些对象。

ParseQuery<ParseObject> a = ParseQuery.getQuery("GroupMember"); 
a.include("name of pointer column") 
a.findInBackground(new FindCallback...); // get list of objects id with for each loop 
//i.e. for (ParseObject o : list) String s = o.getParseObject("user_pointer_column").getObjectId(); 
//then add it to some list 

ParseQuery<ParseObject> b = ParseQuery.getQuery("User"); 
b.whereNotContainedIn("objectId", list_of_ids); 

或者其他方式:

ParseQuery<ParseObject> a = ParseQuery.getQuery("User"); 
ParseQuery<ParseObject> b = ParseQuery.getQuery("GroupMember"); 
b.whereDoesNotMatchQuery("user_pointer_column", a); 
b.findInBackground(new FindCallback...{...}); 
+0

我们可以在单个查询中做到吗? – preetam

+0

我更新了我的答案。像这样? –

+0

正在寻找第二种查询,但我希望除了某些'GroupMember's 之外的所有“User”,不知道如何与'user'类进行比较。但是,谢谢,第一种方法是正确的。 – preetam