3

我有一个这样的模型:

class Users(db.Model):
   email = db.EmailProperty(required=True, indexed=True)
   user_name = db.StringProperty(required=True, indexed=True)
   api_key = db.StringProperty(required=False, indexed=False)
   active = db.BooleanProperty(required=True, indexed=False)
   real_name = db.StringProperty(required=False, indexed=False)
   ...etc

当我尝试进行这样的查询时:

user = db.GqlQuery("SELECT email, api_key, active FROM Users WHERE user_name = :1", username).get()

它返回无,但是当我使用此查询时:

user = db.GqlQuery("SELECT * FROM Users WHERE user_name = :1", username).get()

没关系,一切都回来了。但为什么我不能使用第一个查询?

4

1 回答 1

7

您不能投影未编制索引的属性。如文档中所述

可以投影的属性有一些限制: 您只能投影索引属性。这意味着不支持投影 Text、Blob 或其他明确标记为未索引的属性。

您可以通过在管理控制台的数据存储查看器中运行查询来找出所需的索引。

于 2012-06-15T23:29:44.850 回答