我想知道是否有一种方法可以在解析服务器上的查询中使用“ AND”过滤器。就我而言,我想按类别过滤帖子,例如,我有一个柱状“标签”(数组),并且与该帖子相关的所有标签都是。我检索用户感兴趣的标签,然后查询以查找包含任何这些标签的帖子...
ParseQuery<ParseObject> query = ParseQuery.getQuery("Posts");
ArrayList<String> tags = (ArrayList<String>)object.get("myTags");
query.whereContainedIn("tags", tags);
此查询的问题是它带来非常模糊的答案,例如,用户遵循“ Curiosities”标签,并且也遵循标签“ Avengers”,我想首先显示它,其中包含这两个标签,不仅是其中之一。
答案 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
)进行查询,并在客户端上进行排序-通过匹配标记数进行排序。