3

GQLまたはメソッドGROUPを介して、App Engine で BY する方法はありますか?Query

私はいくつかの調査を行いGROUP BYGQLQueryにはないことを読み、クラスにもないようです。

Pythonで実装するためのリソースまたはアプローチがある場合は、お知らせください。


編集

GROUP BYまた、Map Reduceで作成できることも読みました。誰かがこれを経験したことがあれば、助けが受け入れられます。

ありがとう。

4

3 に答える 3

4

いいえ、データストアはデータベース側の処理や集計をサポートしていません。解決策は、すべての後処理をメモリ内で実行することです。これを行う2つの方法は、各リクエスト、またはmapreduceを使用する方法です。どちらのソリューションでも、クエリ内のすべての行が常に返されますが、行を取得する方法は異なります。

于 2012-02-08T23:59:32.230 に答える
2

GROUP BYappengine ライブラリでクエリを実行することはできません。これは、一般的に、 NoSQLデータベース アーキテクチャの失敗です (Google の BigTable はその実装の 1 つです)。

で何をするかによってGROUP BY、別のアプローチがニーズに合う場合があります。クエリを実行するモデルの「タイプ」ごとに、それぞれを表すクラスをGROUP BY作成します。db.Model次に、それらのクラスを直接クエリします。

または、返されたグループの値を事前に知っている場合は、それらの値のそれぞれに対してQuery#filter()GROUP BYを実行し、それらのクエリをed セットとして扱うことができます。

于 2012-02-08T23:55:38.410 に答える
1

解決策は、最終的には、グループ化されたデータで何をする予定かによって決まると思います。グループ化の要件がHTMLコードでの出力を単純化することである場合は、テンプレート内のデータを再グループ化することでそれを解決できます。

計算やその他の種類の集計では、メモリ内でそれを行う必要があります。

于 2012-02-09T13:45:42.870 に答える