Google应用程序引擎python,GQL,仅从数据存储中选择一列

Google应用程序引擎python,GQL,仅从数据存储中选择一列,python,google-app-engine,gql,gqlquery,Python,Google App Engine,Gql,Gqlquery,我试图从数据存储表中只提取一列 我有一本书的模型 id、密钥、标题、作者、isbn和价格 everything=db.GqlQuery('SELECT*fromsbooks')提供了所有信息,但我只想要标题 books=db.GqlQuery('从书中选择标题') 我尝试了人们提出的一切建议,但似乎没有任何效果 非常感谢您的帮助 谢谢你不能。GQL不是SQL,数据存储也不是关系数据库。实体存储为单个序列化协议缓冲区,无法获取实体的一部分;整个过程都需要进行反序列化。数据存储中的一个设计考虑因素是

我试图从数据存储表中只提取一列

我有一本书的模型 id、密钥、标题、作者、isbn和价格

everything=db.GqlQuery('SELECT*fromsbooks')提供了所有信息,但我只想要标题

books=db.GqlQuery('从书中选择标题')

我尝试了人们提出的一切建议,但似乎没有任何效果

非常感谢您的帮助
谢谢

你不能。GQL不是SQL,数据存储也不是关系数据库。实体存储为单个序列化协议缓冲区,无法获取实体的一部分;整个过程都需要进行反序列化。

数据存储中的一个设计考虑因素是在关系数据库中没有冗余的地方使用冗余

例如,您的代码可能有一个“标题”实体,它在每次添加书籍时添加,在每次删除书籍时删除。然后,您可以查询标题实体以获取所有标题,而无需加载所有书籍

您的代码必须强制执行这些规则,但通过一些python抽象,这并不困难(即,将对书籍或标题的所有访问放在一个类后面,该类的方法强制执行数据中的关系)

我强烈建议您阅读一些有关数据存储的更高级主题


人们通常将实现的时刻称为“我如何学会停止担忧并热爱数据存储。”这基本上是人们摆脱正常的数据思维方式的时刻,并进入分布式/冗余视图,在该视图中,您只需在数据存储中喷洒数据,它就会处理数据。

可能重复使用投影查询。/。我目前正在使用免费版本的app engine。返回所有内容会占用我的数据存储的大量日常使用量,因此对于某些查询,我想说得更具体一些,有什么建议吗?@sidarcy:您可以对模型进行非规范化,但IIRC数据存储的使用量是通过对API的调用来衡量的,而不是返回实体的大小,因此能够返回特定列对配额没有多大帮助。您是否考虑过在memcache中缓存结果以减少对数据存储API的调用?