【问题标题】:Google Datastore Query and Sort on different properties谷歌数据存储查询和排序不同的属性
【发布时间】:2020-03-25 19:12:26
【问题描述】:

我正在尝试使用 Google 的 Datastore API (Java11) 对与用作过滤器的字段不同的字段上的数据进行排序。我收到以下错误

不等式过滤器属性和第一排序顺序必须相同

示例: 数据:

Name: Toronto, Temperature: 30
Name: New York, Temperature: 70
Name: Montreal, Temperature: 10

数据存储查询:

Query<Entity> query = Query.newEntityQueryBuilder()
        .setKind("Cities")
                .addOrderBy(OrderBy.asc("Name"))
        .setFilter(CompositeFilter.and(
            PropertyFilter.ge("Temperature", 30)))
        .build();

应与以下内容相同:

SELECT name,temperature FROM cities WHERE temperature >= '30' ORDER BY name;

有没有办法在 Datastore 中执行这样一个简单的查询?

【问题讨论】:

    标签: java nosql google-cloud-datastore


    【解决方案1】:

    不,你必须自己求助。如https://cloud.google.com/datastore/docs/concepts/queries#sort_orders 的注释框中所述:

    “注意:由于数据存储模式执行查询的方式,如果查询指定属性的不等式过滤器和其他属性的排序顺序,则不等式过滤器中使用的属性必须在其他属性之前排序。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-11
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多