【问题标题】:Query Google Cloud Datastore to retrieve matching results查询 Google Cloud Datastore 以检索匹配结果
【发布时间】:2017-11-30 17:49:10
【问题描述】:

我正在使用 Google Cloud Datastore 来保存我的应用程序数据。我必须添加一个查询以获取与名称、品牌或 Sku 匹配的所有结果。

使用其中一个字段的查询数据正在返回记录,但同时使用所有字段会返回错误。

查询:

  const term = "My Red";
  const q = gstore.createQuery(req.params.orgId, "Variant")
  .filter('brand', '=', term)
  .filter('sku', '=', term)
  .limit(10);

错误:

{"msec":435.96913800016046,"error":"没有找到匹配的索引。 推荐的索引是:
- 种类:Variant
属性:
- 名称:品牌
- 名称: sku
","data":{"code":412,"metadata":{"_internal_repr":{}},"isBoom":true,"isServer":true,"data":null,"output ":{"statusCode":500,"payload":{"statusCode":500,"error":"内部 服务器错误","message":"内部服务器错误 发生"},"headers":{}}}} 调试:内部,错误

另外,我想执行 OR 操作以获取匹配结果,如上将使用 AND 操作返回数据。 请帮我找到正确的路径来达到预期的效果。

提前致谢,如果有不清楚的地方请告诉我。

【问题讨论】:

    标签: node.js google-app-engine nosql google-cloud-datastore


    【解决方案1】:

    该错误表示各个查询所需的复合索引不在Serving状态。

    这意味着它要么未创建/未部署,要么最近已部署且仍在构建中。

    必须在您的应用中专门创建和部署复合索引。

    如果您没有创建它,则需要这样做。错误消息指示索引配置所需的内容。如果您使用的是开发服务器,它可能会自动创建它,但您仍然需要部署它。

    有关详细信息,请参阅Indexes 文档。

    如果您最近部署了复合索引,请注意,构建匹配索引可能需要相当长的时间,具体取决于数据存储区中已存在多少此类实体。您可以在开发者控制台的Indexes页面上查看索引构建的状态

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-28
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 2018-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多