1

AppEngine DataStore にいくつかのエンティティが格納されており、それらすべてにインデックス付きの数値プロパティがあり、現在存在する最大の値を見つける必要があるとします。

このプロパティで降順ソートと制限 1 でソートされた射影クエリを単純に実行できます。返された結果には、私の答えが含まれます。

これは最善のアプローチですか、それともこの値を取得するためのより効率的な方法はありますか?

(この場合、一貫性はそれほど心配する必要はありません。同時にコミットされているいくつかの値を見逃しても、あまり気にしません。したがって、ここではトランザクションは必要ありません。)

4

1 に答える 1

2

GAE データストアには SQL データベースに相当するものがないMAXため、実際には、列で並べ替えて最初のエントリを取得するのが最善です。例えば:

max_val = MyEntity.query().order(-MyEntity.my_numeric_field).get().my_numeric_field

このフォーラムのディスカッションも参照してください。

2 番目のオプションは、最大値を他のエンティティに保存し、最初のエンティティの 1 つを追加するたびに (おそらくトランザクションで) 更新することです。

于 2013-08-16T08:36:46.167 に答える