2

データストア テーブルから 1 つの列のみを取得しようとしています

ID、キー、タイトル、著者、ISBN、および価格を持つ書籍モデルがあります

everything = db.GqlQuery('SELECT * FROM Books') は私にすべてを与えますが、タイトルだけが欲しいと言います

books = 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 に答える