如何使用 java API 查询数组类型字段至少包含给定数组的一个元素的所有实体?
How to query all entities those array type field contains at least one element of the given array using java API?
我有一个 GCP 数据存储实体,它有一个包含元素列表的数组类型字段,例如 [1,2,3]
示例:
@Entity
public class TestEntity{
@Id
String id;
List<String> data;
}
我需要使用 GCP java API 构建一个查询 select 在字段中至少具有给定数组的一个元素的所有实体。
示例:
两个实体:
1: [1,2,3]
2: [1,4,5]
我希望输入 select:
[1,2] - 1, 2;
[2] - 1
EntityQuery.Builder queryBuilder =
Query.newEntityQueryBuilder().setKind("testEntity");
queryBuilder.setFilter(....)
我在 API 中没有看到“包含”或“位于”之类的过滤器。我如何构建这样的查询?
数据存储模式索引每个唯一数组 属性 值每个索引一次。因此,要查询数组是否包含值,请使用相等过滤器。 [1]
.setFilter(PropertyFilter.eq(property,value))
[1] https://cloud.google.com/datastore/docs/concepts/queries#array_values
我有一个 GCP 数据存储实体,它有一个包含元素列表的数组类型字段,例如 [1,2,3]
示例:
@Entity
public class TestEntity{
@Id
String id;
List<String> data;
}
我需要使用 GCP java API 构建一个查询 select 在字段中至少具有给定数组的一个元素的所有实体。
示例: 两个实体: 1: [1,2,3] 2: [1,4,5] 我希望输入 select: [1,2] - 1, 2; [2] - 1
EntityQuery.Builder queryBuilder =
Query.newEntityQueryBuilder().setKind("testEntity");
queryBuilder.setFilter(....)
我在 API 中没有看到“包含”或“位于”之类的过滤器。我如何构建这样的查询?
数据存储模式索引每个唯一数组 属性 值每个索引一次。因此,要查询数组是否包含值,请使用相等过滤器。 [1]
.setFilter(PropertyFilter.eq(property,value))
[1] https://cloud.google.com/datastore/docs/concepts/queries#array_values