3

Google-Appengine-NDB を使用しています。データベースから個別の値を取得しようとしましたが、機能していません。

今私のコードは次のとおりです。
  query_set = cls.query().order(cls.ls) # 順序付きクエリの取得。
  set_of_field = set([data.field for data in query_set]) # そして、このループを使用して異なる.`

しかし、ループに時間がかかりすぎます (12 秒以上)。どうすれば高速化できますか、またはndbから個別の値を取得する方法を教えてください。

4

1 に答える 1

4

フィールドがインデックス化されている場合は、これを使用できます: https://developers.google.com/appengine/docs/python/ndb/queries#projection

query_set = cls.query(projection=["field"], distinct=True)
set_of_field = [data.field for data in query_set]

ただし、リストが膨大な場合は、タスクキューでこれを実行して結果をどこかに保存するか、別のモデルに個別のデータを保持することができます。

于 2013-08-30T02:37:04.970 に答える