为了账号安全,请及时绑定邮箱和手机立即绑定

我无法查询 2 个属性的 GQL,只有通配符有效

我无法查询 2 个属性的 GQL,只有通配符有效

Go
慕斯王 2021-07-13 13:01:30
我将comment实体存储在 Datastore 中,并Datastore Viewer用于查看存储的数据。我可以做以下查询select * from comment    select __key__ from commentselect Subject from commentselect Comment from comment但我无法查询select Subject, Comment from comment// Error: The suggested index for this query is://    - kind: comment//      properties://      - name: Comment//      - name: Subjectselect __key__, Subject, Comment from comment// Error: projections are not supported for the property: __key__我找不到任何参考为什么它是错误的。这些错误并没有告诉我太多。我没有为这些实体设置任何键或索引。文档说明如下:SELECT [DISTINCT] [* | <property list> | __key__]  [FROM <kind>]  [WHERE <condition> [AND <condition> ...]]  [ORDER BY <property> [ASC | DESC] [, <property> [ASC | DESC] ...]]  [LIMIT [<offset>,]<count>]  [OFFSET <offset>]  <property list> := <property> [, <property> ...]  <condition> := <property> {< | <= | > | >= | = | != } <value>  <condition> := <property> IN <list>  <condition> := ANCESTOR IS <entity or key>  <list> := (<value> [, <value> ...]])Subject, Comment- 是属性列表,它是有效的查询。但事实并非如此。我从 Go 代码创建了实体。
查看完整描述

1 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

投影查询有一些限制。在projection-doc中提到了"Only indexed properties can be projected".


第一条错误消息准确地显示了 的组合索引Subject, Comment尚不存在。您可以通过添加手动创建索引


- kind: comment

  properties:

  - name: Comment

  - name: Subject

到您index.yaml的项目根文件夹中。请查看索引规范和投影文档。


// Error: projections are not supported for the property: __key__

实体keys由 GetAll 方法返回。不要把它们放在你的投影中。


keys, err := q.GetAll(c, &people)

我还不能发布超过 2 个链接,因此请在数据存储参考中查找更多详细信息。


查看完整回答
反对 回复 2021-07-19
  • 1 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信