2012-08-28 2 views
5

私が構築する鍵が与えられているので、データストアにヒットしてその存在を確認したいが、最も安い(時には)その方法を欲しい。私が探しているのは、キーのみのクエリのようなものですが、getから取得します。 my_key.get(keys_only = True)。そのような動物は存在しますか?それは私のようには見えません。そうでない場合は、私が何を達成するための他の方法がありますか?アプリエンジンndb Key.getキーのみを返しますか?

ありがとうございました。

+0

最小限のプロパティでプロジェクションを取得すると便利です。それがもっと速くなるかどうかは分かりません。 – Jeremy

答えて

6

いいえ、この機能は存在しません。すべてのエンティティがインデックスに登録されているわけではないので、キーが存在するかどうかをテストする唯一の方法であり、次にエンティティデータを無料で利用できるようにする唯一の方法です(ディスク操作に関しては、シリアライゼーションコストは少しありますが、その費用は請求されません)。

PS。あなたは時期尚早に最適化しようとしていませんか?

+0

ありがとうございました。あなたの質問に答えて、私は時期尚早に最適化しようとしているわけではありません。しかし、私はappstatsを使って並行して多くのことを行い、rpc呼び出しをかなりうまくやっています。私がこのケースで取り戻しているエンティティは、ビューのために必要でないTextPropertyを持っています。それは、私が避けようとしていたものです。もう一度おねがいします。そして、ndbであるawesomenessに感謝します! – Jay

+2

現在のモデルが2つの異なる理由で使用されている場合は、目的別に2つの別々のモデルに分割することを検討してください。それぞれに同じキーIDを使用することもできます。これにより、TextPropertyがもたらす不要なペイロードを節約できます。 – Dave

関連する問題