如何在objectify中编写GQL`CONTAINS`比较器查询

时间:2019-05-24 11:48:41

标签: google-app-engine google-cloud-datastore objectify gql

我使用Google Cloud数据存储来存储和物化以读取数据。我使用的实体拥有一个list属性,并且我想通过多个值过滤记录,并且仅当所有值都存在于列表中时才应返回结果

GQL现在支持CONTAINS查询过滤器link here。我想知道如何在对象化中实现

假设有三个实体拥有一个列表字段

(Entity1) => list = ["id1","id2","id3","id4"] 
(Entity2) => list = ["id1","id2","id3"]
(Entity3) => list = ["id1"]
queryList = ["id1","id2"]

如何编写使用包含的对象化查询。例如,ofy().load().type( Entity.class ).filter( "list contains" , queryList ).list();以便仅返回实体1和2

我很熟悉IN过滤器ofy().load().type( Entity.class ).filter( "list in" , queryList ).list();  将返回所有三个实体。 但是要求是仅提取同时具有id1id2

的实体

1 个答案:

答案 0 :(得分:0)

您将要使用AND查询,该查询应为...filter("list", "id1").filter("list", "id2")