【问题标题】:Error: FAILED_PRECONDITION: no matching index found. recommended index is:错误:FAILED_PRECONDITION:找不到匹配的索引。推荐指数为:
【发布时间】:2018-07-06 21:02:58
【问题描述】:

所以我尝试在 Google Cloud 的数据存储上运行查询:

let query = datastore.createQuery(dataType)
    .select(["id", "version", "lm", "name"])
    .filter("owner", "=", request.params.owner)
    .filter("lm", ">=", request.query.date_start)
    .groupBy(["lm"])
    .order("lm")

但我遇到了一个错误,指出

no matching index found. recommended index is:
- kind: Entry
  properties:
  - name: lm
  - name: id
  - name: name
  - name: version

当我使用id 而不是lm 运行查询时,所有方法都没有出错。 这是因为在我的index.yaml 文件中我有这样的索引:?

- kind: Entry
  properties:
  - name: id
  - name: version
  - name: lm
  - name: name

我必须实际创建一个具有推荐顺序的新索引吗?或者有没有办法我可以做到这一点而不必制作另一个索引?谢谢!

【问题讨论】:

    标签: node.js google-cloud-platform google-cloud-datastore datastore google-query-language


    【解决方案1】:

    是的,您需要创建一个新索引,您显示的现有索引等效,因此它不能用于您的查询 - 属性顺序很重要(至少对于不等式过滤器和排序)。见相关Google Datastore Composite index issue

    【讨论】:

      猜你喜欢
      • 2021-01-05
      • 1970-01-01
      • 2015-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-24
      • 2019-01-14
      • 1970-01-01
      相关资源
      最近更新 更多