应用程序引擎数据存储:如何使用特定数组大小返回实体计数的查询/过滤器?

时间:2018-03-21 12:13:18

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

我有一个具有不同属性的实体,其中一个属性是对象数组,我正在使用Objectify使用Java

现在我想用filter进行查询,只返回具有特定数组大小的所有实体的计数E.g messages size=2

示例:

Kind: Request

和     propery:

    name messeges 
        {
          "values": [
            {
              "K1": "V1",
              "K2": "V2"
            },
            {
              "K3": "V3",
              "K4": "V4"
            },
            {
              "K5": "V5",
              "K6": "V6"
            }
          ]
        }

类似的东西:

int count = ofy().load().type(Request.class).filter("?? return count , to query with messages size is 2..").count()

有任何建议吗?

1 个答案:

答案 0 :(得分:1)

无法使用数据存储区进行此类查询。

但是你可以向你的实体添加一个属性,让我们称之为values_count,以反映values数组大小,并在该属性上进行相等的查询(例如{{1 }})

我将其作为计算属性,每当实体更新时自动更新,请参阅Is it possible to have a computed property on Google App Engine using Java?