2

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

我有一个带有 id、key、title、author、isbn 和 price 的 Books 模型

Everything = db.GqlQuery('SELECT * FROM Books') 给了我一切,但说我只想要标题

book = db.GqlQuery('SELECT title FROM Books')

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

非常感谢任何帮助谢谢

4

2 回答 2

3

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

于 2011-08-27T12:01:10.193 回答
2

数据存储中的一个设计考虑是在关系数据库中不使用冗余的地方使用冗余。

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

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

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

人们经常将实现的时刻称为“我如何学会停止担心并热爱数据存储”。它们基本上是人们从正常形式的数据思考方式切换到分布式/冗余视图的时刻,您可以在数据存储中喷洒数据,它会处理它。

于 2011-08-27T15:08:01.847 回答