【问题标题】:Parse.com nested query containing doesNotMatchQueryParse.com 嵌套查询包含 doesNotMatchQuery
【发布时间】:2015-11-02 08:10:43
【问题描述】:

我有 UserGroupMember 解析类。

我在GroupMember 类中添加了一个User 指针列,并希望从User 类中获取所有用户,但不包括GroupMember 类关系中存在的用户。

【问题讨论】:

  • 能否请您举一些例子,例如 GroupMember 有这些行和列,而 User 有这些行和列,其中包含值。这些值中的假数据将起作用。我们只需要知道您正在寻找的具体逻辑,以便我们为您提供最佳答案。

标签: android ios parse-platform pfuser


【解决方案1】:

您必须进行两个查询,从GroupMembers 指针列中查询所有用户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...{...});

【讨论】:

  • 我们可以在单个查询中完成吗?
  • 寻找第二种查询,但我想全部来自“用户”,除了一些GroupMembers ,不知道如何与user 类进行比较。不过谢谢,第一种方法是对的。
  • 虽然我只是在寻找嵌套查询。
  • 没有办法做到这一点,而不是复合查询 - 但是解析限制。如果第一种方法是正确的 - 请接受它作为答案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
  • 2015-07-05
  • 1970-01-01
  • 2016-11-10
  • 1970-01-01
相关资源
最近更新 更多