2011-12-03 2 views
1

私のデータストアには、特定のモデル(「グレード」)の約400以上のモデルインスタンスがあります。それらはすべて、異なる値を持つ "points"(points = db.IntegerProperty(デフォルト= 0))という整数プロパティを持っています。GAE:複数のインスタンスから整数プロパティのすべての値を加算する最良の方法

各インスタンスのすべての「ポイント」値の累積合計を取得する最適な方法は何ですか? Model.all()を使ってすべてのインスタンスを取得することなく、それを行う方法はありますか?

答えて

-1

あなたは最初のポイントの値> 0を持っているすべてのエンティティのキ​​ーを取得するためにGQLクエリを行うことができます:

SELECT __key__ FROM Grade WHERE points > 0

あなただけが必要なエンティティを引き上げ、および任意の実体を無視し、この方法それは数学的には関係ありません。次に、各キーのdb.get(Key)を実行し、ポイントを変数に追加することによって、キーを取得する各エンティティを取得するループを実行できます。 GAEで

、唯一の鍵は、より効率的かつより少ない費用がかかりますクエリ:http://code.google.com/appengine/docs/python/datastore/queries.html#Queries_on_Keys

+0

しかし、その後、あなたがaditional機能(db.get(キー))呼んでいます。これは全体的に高速ですか、それだけですべてですか? – zakdances

+0

とにかく結果を取得しようとしているのであれば、キーのみのクエリを行うことには意味がありません。 –

関連する問題