GQLまたはメソッドGROUP
を介して、App Engine で BY する方法はありますか?Query
私はいくつかの調査を行いGROUP BY
、GQLQuery
にはないことを読み、クラスにもないようです。
Pythonで実装するためのリソースまたはアプローチがある場合は、お知らせください。
編集
GROUP BY
また、Map Reduceで作成できることも読みました。誰かがこれを経験したことがあれば、助けが受け入れられます。
ありがとう。
GQLまたはメソッドGROUP
を介して、App Engine で BY する方法はありますか?Query
私はいくつかの調査を行いGROUP BY
、GQLQuery
にはないことを読み、クラスにもないようです。
Pythonで実装するためのリソースまたはアプローチがある場合は、お知らせください。
編集
GROUP BY
また、Map Reduceで作成できることも読みました。誰かがこれを経験したことがあれば、助けが受け入れられます。
ありがとう。
いいえ、データストアはデータベース側の処理や集計をサポートしていません。解決策は、すべての後処理をメモリ内で実行することです。これを行う2つの方法は、各リクエスト、またはmapreduceを使用する方法です。どちらのソリューションでも、クエリ内のすべての行が常に返されますが、行を取得する方法は異なります。
GROUP BY
appengine ライブラリでクエリを実行することはできません。これは、一般的に、 NoSQLデータベース アーキテクチャの失敗です (Google の BigTable はその実装の 1 つです)。
で何をするかによってGROUP BY
、別のアプローチがニーズに合う場合があります。クエリを実行するモデルの「タイプ」ごとに、それぞれを表すクラスをGROUP BY
作成します。db.Model
次に、それらのクラスを直接クエリします。
または、返されたグループの値を事前に知っている場合は、それらの値のそれぞれに対してQuery#filter()GROUP BY
を実行し、それらのクエリをed セットとして扱うことができます。
解決策は、最終的には、グループ化されたデータで何をする予定かによって決まると思います。グループ化の要件がHTMLコードでの出力を単純化することである場合は、テンプレート内のデータを再グループ化することでそれを解決できます。
計算やその他の種類の集計では、メモリ内でそれを行う必要があります。