0
リクエストが完了したときに、データストアへのバッチリクエストでレコードの順序が保持されるのでしょうか?Google Cloud Datastoreのバッチ操作シーケンス
標準のgoogle-cloud/datastoreクライアントライブラリを使用して、このようなバッチ処理リクエストを実行しています(Datastoreのドキュメントから)。
const keys = [taskKey1, taskKey2];
datastore.get(keys)
.then((results) => {
// Tasks retrieved successfully.
const tasks = results[0];
console.log(tasks);
});
結果はキー配列と同じ順序であると思われますが、実際の例ではそうではありません。
私は間違っているのですか、Google Datastoreはバッチ処理で注文を保存していませんか?
実はそれは私が探してるものではありません。私はこのキーを使ってこのエンティティを正確に取得する必要があります。 Btw、ダイレクト・キー・フェッチと問合せフェッチ・ウェイのパフォーマンスはどうですか? – QuestionAndAnswer
私が理解しているように、Datastoreはデフォルトでエンティティをキー値で並べ替えます。異なるソートを決定するためにクエリを使用しない限り、キーで順序付けされた一致するエンティティを取得する必要があります。アプリケーションで結果をソートする必要があるようです(データストアコマンドで元のソートを変換できないと仮定して)。パフォーマンスに関しては、 'get()'メソッドは 'key'フィルタを使ったクエリより速くなければなりませんが、毎日数十万回または数百万回のリクエストを実行しない限り、大きな違いはありません。 –
現在の実装方法です。私のコードでManuakソーティング。しかし、私は本当にこの解決策が嫌いです。 Siは、今のところ私はそれを残して、おそらくDatastoreの開発者は、この問題を将来解決するものを紹介します。 – QuestionAndAnswer