单属性GQL导致意外的复合索引

时间:2012-05-26 03:18:31

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

如果我执行此GQL查询:

GQLQuery("SELECT user FROM MyUser WHERE foo = :1", fooz)

这会导致我的index.yaml使用userfoo属性制作复合索引。

- kind: MyUser
  properties:
  - name: user
  - name: foo

如果我删除了该索引,当它上传到App Engine并且我的应用程序运行时,会出现错误 no matching index found

我只是不明白为什么GAE必须为该查询创建一个复合索引?

1 个答案:

答案 0 :(得分:2)

此行为为fully documented here

  

投影查询要求投影中指定的所有属性都包含在数据存储区索引中。