在解析服务器中过滤“与”

时间:2018-08-17 15:57:03

标签: android mongodb parse-platform parse-server

我想知道是否有一种方法可以在解析服务器上的查询中使用“ AND”过滤器。就我而言,我想按类别过滤帖子,例如,我有一个柱状“标签”(数组),并且与该帖子相关的所有标签都是。我检索用户感兴趣的标签,然后查询以查找包含任何这些标签的帖子...

 ParseQuery<ParseObject> query = ParseQuery.getQuery("Posts");
  ArrayList<String> tags = (ArrayList<String>)object.get("myTags");
  query.whereContainedIn("tags", tags);

此查询的问题是它带来非常模糊的答案,例如,用户遵循“ Curiosities”标签,并且也遵循标签“ Avengers”,我想首先显示它,其中包含这两个标签,不仅是其中之一。

2 个答案:

答案 0 :(得分:0)

根据Parse Server文档。

String[] names = {"Jonathan Walsh", "Dario Wunsch", "Shawn Simon"};
query.whereContainedIn("playerName", Arrays.asList(names));

https://docs.parseplatform.org/android/guide/#query-constraints

答案 1 :(得分:0)

whereContainedIn将找到对象,其中特定键包含所传递数组中的元素 之一。

要获取特定键包含传递的数组中的所有个元素的对象,请使用whereContainedAll

但是请注意,如果您要按顺序列出匹配项,则首先列出匹配 all 标签的对象,然后列出匹配 some 标签的对象。然后,您将需要使用更宽松的版本(whereContainedIn)进行查询,并在客户端上进行排序-通过匹配标记数进行排序。