我有一个数据存储区,其中一个属性包含一个字符串数组。每个实体可以具有该阵列的不同大小。我想对每个实体中的数组内容进行查询和过滤。如何基于使用Java库的阵列属性过滤Google Content Store数据
我目前生成一组过滤器,一个用于数组中的每个必需字符串。然后构建一个复合过滤器,用于EntityQuery。该过滤器是这样产生的:
// arrayProperty is the name on the property in my Datastore that contains the array of strings.
List<PropertyFilter> pathFilters = Arrays.stream(new String[] {"a","b","c"})
.map(s -> PropertyFilter.eq("arrayProperty", s))
.collect(Collectors.toList());
然而,这将两个实体与arrayProperty = [A,B,C]和匹配arrayProperty = [A,B,C,d]。
我可以使用com.google.cloud.datastore中JAVA库中的Google Cloud Datastore Query过滤掉其属性值是特定数组且具有完全相同元素(不多,不少于独立顺序)的实体吗?也许通过某种尺寸过滤器或完全不同的查询/过滤器。或者我可以使用GQL?
谢谢!不是我希望的答案,但不能为此责怪你! :-P –