問題タブ [app-engine-ndb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
251 参照

python - 射影されたクエリを使用する場合のNDBキャッシング

以前に尋ねられたこの特定の質問はまだ見つかりませんでした。投影されたクエリと完全なエンティティクエリを使用する場合、App EngineのNDBはキャッシュをどのように処理しますか?

たとえば、最初に射影クエリを実行した場合。

...次に通常のクエリを実行します...

...何がもらえますか?完全なエンティティ?もしそうなら、最初のクエリのいずれかの部分がNDBによって自動的にキャッシュされましたか?または、NDBは区別をうまく行うことができるので、次に投影されたクエリを実行すると、キャッシュからプルされる可能性がありますか?

0 投票する
1 に答える
738 参照

python - StringListPropertyとStringProperty(repeated = True)

それらの主な違いは何ですか?構造化プロパティについても教えてください。それらはすべて複数の値を保存しますが、違いは理解できません。

0 投票する
1 に答える
1436 参照

app-engine-ndb - アプリエンジンndb Key.getはキーのみを返しますか?

私が構築したキーが与えられたら、データストアにヒットして存在するかどうかを確認したいと思いますが、それを行うための最も安価な (時間的に) 方法が必要です。私が探しているのは、キーのみのクエリのようなものですが、get からのものです。たとえば、my_key.get(keys_only=True) です。そのような動物は存在しますか?私にはそう見えません。そうでない場合、私が求めているものを達成する他の方法はありますか?

ありがとう。

0 投票する
2 に答える
495 参照

google-app-engine - 1つのクエリですべての名前空間を読み取るにはどうすればよいですか

とは異なり、Google App Engineで名前空間のリストを取得するにはどうすればよいですか?、この質問は、すべての名前空間名を知っているかどうかに関係なく、1つのクエリですべての名前空間のデータにアクセスできるかどうかを尋ねます。


名前空間に関するドキュメントを読みました。データの分離には最適ですが、すべての異なる名前空間からのデータを分析したいと思います。アプリケーション内の1000個の名前空間すべてを含む1つのクエリを実行することは可能ですか。名前空間に依存しないクエリ?

0 投票する
2 に答える
4654 参照

python - NDBクエリの長​​さを取得する-GoogleAppEngineでPythonを使用する

Google App EngineでNDBを使用するときに、クエリ結果の数を取得するための良い方法は何ですか?

これを試みました:

これはおそらく非常に単純な質問であることをお詫びしますが、ドキュメントからは明確ではありませんでした。

0 投票する
2 に答える
1104 参照

google-app-engine - NDBを使用するAppengineで、リクエストが終了した後、非同期プットによって競合例外が発生するとどうなりますか?

ndbを使用して、@ ndb.toplevelを使用して40個の要素をput_asyncし、ユーザーに出力を書き込んでリクエストを終了したとしますが、それらのput_asyncの1つで競合例外が発生しましたが、応答は500または200になりますか?または、それがタスクである場合、タスクは再実行されますか?

1つの解決策は、リクエストが終了する前に40個のリクエストすべてをget_result()して、それらの例外をキャッチすることです(発生した場合)が、パフォーマンスに影響するかどうかはわかりません。

0 投票する
1 に答える
654 参照

python - PolyModel と NDB の結合

ポリモデル クラスと NBD クラスを結合しようとしています。これを行うための「最善の」方法を明確にするための助けは、次の問題を考えると素晴らしいでしょう。

私は果物のポリモデルを持っています ( Fruit -> Tree-Bearing -> Apples -> Granny Smith- ポリモデル階層の例として)、それをダイエットと呼ばれる ndb.Model に保存したいと思います。明らかに、果物のカテゴリ、野菜のカテゴリなどがあります。これはどのように構築する必要がありますか?

これまでのところ、私は持っています:

これに関する問題 - 私が正しく読んでいると思うように、ダイエットの果物と野菜のオブジェクトは「クエリ不可」です。私は明らかに、ユーザーが自分の特定の果物に一致する食事を検索できるようにしたいと考えています. また、ndb のキャッシング機能も利用したいと考えています。すべてのグラニースミスダイエットが必要な場合に、値が「なし」のダイエットを返さずに取得できるように、フルーツを効率的にクエリするにはどうすればよいでしょうか。さらに、NDB でポリ モデルを実行することはまったく可能ですか? そうでない場合、果物の構造を A) 必要なものに一致させ、B) 少なくとも名目上は効率的にするにはどうすればよいでしょうか?

本当にありがとう!ジョン

0 投票する
1 に答える
138 参照

python - ndbは、GAEでndbを使用せずに作成されたエンティティで機能しますか?

ndbPythonGAEのライブラリに切り替えます。

ndb低レベルのAPIを使用して以前に作成されたエンティティで使用できますか?または、ndbを使用するために、すべての古いエンティティをコピーして再保存する必要がありますか?

ありがとう!

0 投票する
1 に答える
1847 参照

python - Google App Engine で @ndb.tasklet または @ndb.synctasklet を使用する

いくつPOSTかのタスクレットを呼び出すメソッドがあります。これらのタスクレットにはyieldがありx.put_async()、私のコードにもいくつかあります。したがって、すべての非同期処理が完了する前に戻りたくありません。だから私はすべてのタスクレットを装飾しました。これは単なる小さな関数であり、@ndb.tasklet. また、私のPOST方法の上に、私は持っています:

ただし、ドキュメントには次のように記載されています。

しかし、ハンドラ メソッドが yield を使用する場合、そのメソッドは別のデコレータ @ndb.synctasklet でラップする必要があります。そうしないと、yield で実行が停止し、終了しません。

実際、私の方法には収量があります。すでに @ndb.tasklet にラップされています。これを @ndb.synctasklet に置き換えますか、それとも両方を使用しますか?

また、いくつかの関連性があるこのスレッドを参照してください。私も、リクエストが出力なしで返されるが、再現できないという問題に気付きました。一定の使用で15分ごとに発生します。私は持っていましたが、今はメインのメソッドにapp = ndb.toplevel(webapp2.WSGIApplication([..])追加しましたが、問題は解決しません。@ndb.toplevelPOST

@ndb.taskletもあるメソッドの上に置くべきput_async()ですか?(安全のためにすべてのメソッドの上に置く必要がありますか?これの欠点は何ですか?)

0 投票する
1 に答える
240 参照

python - AppEngineのエンティティの最適なサイズはどれくらいですか

ここでインサイダー情報を探しています。

データストアに保存したいMD5ハッシュのリストがたくさんあります。リストは十分に大きいので、複数のエンティティを使用して保存する必要があります。つまり、リストを小さなリストに分割して、個別に保存する必要があります。

これを行うために、任意の長さのハッシュのリストを格納および取得できる単純なモデルがあります。

リストに1,000,000個のMD5ハッシュがあることがわかっているとします。上記のコードは、それぞれがzlistプロパティのサイズが2kより少し小さい10,000個のエンティティを生成します(私自身の簡単なテストに基づく)。

基本的に、MAX_LENGTHの最適値は何でしょうか。MAX_LENGTHが大きくなると、エンティティのサイズも大きくなります。エンティティごとに1MB(〜40,000 MD5ハッシュ)にプッシュする必要がありますか?100は小さすぎますか?1000の方がいいですか?