ノードでColorsDBクエリ継続トークンを取得します.js
5270 ワード
VALOでの内部ツールの1つについては、プロジェクトのローカライズを管理するためのポータルを作成しています.ポータル自体は静的なウェブサイトとして生成され、Azure静的Webアプリケーションでホストされます.Azureの静的なWebアプリケーションについての大きなことは、それがホスト機能とAzure機能を作成する機能が付属しています.
ポータルは、ローカライズ機能を管理するためのazure関数を使用します.最初に、私はAzureテーブル記憶装置でプロジェクトを作成し始めました、しかし、私は速く2つの制限(速度、質問、ページング)につまずきました.私が建築を考え直していたとき、私は最初にAzure検索とテーブル記憶の組合せをしたかったです.最大の問題は、ローカライズスキーマが連続的に変化することです.検索スキーマを適応することができますが、ほとんどの場合、最適ではないインデックスを再現する必要があります.
もう一つのアプローチは紺碧のコスモスDBに移動することです、しかし、それは価格タグで来ます.あなたはfree tier , しかし、これはあなたに割引を与えます.あなたがより多くを使うならば、あなたはあなたの使用のために支払いを始めます.
今年初めにビルドで、彼らはまた、夏にプレビューでリリースされたServerlessティアがあると発表しました.良いニュースは、この層が利用可能になり、私は私のアプリを持っているニーズに合うことです.
と言った.最初に、私はAzureテーブル記憶からCosmos DBまで私の内容を押しやりました.すべての良いので、私は私のデータを取得するために私のazure関数を作成し始めた.我々は+ 2000キーについて話したので、私はいくつかのページングを実装し、別の問題につまずいた.コスモスDB、その継続トークンのみサポートされていた.NETとJava SDK.
ノードに従うとき.JSドキュメントのすべての項目を取得するには、次のコードスニペットを示します
私はクエリオプションを使用して、私はあなたが
返り値トークン
また、あなたは
コードで使用する方法は次のとおりです.
ポータルは、ローカライズ機能を管理するためのazure関数を使用します.最初に、私はAzureテーブル記憶装置でプロジェクトを作成し始めました、しかし、私は速く2つの制限(速度、質問、ページング)につまずきました.私が建築を考え直していたとき、私は最初にAzure検索とテーブル記憶の組合せをしたかったです.最大の問題は、ローカライズスキーマが連続的に変化することです.検索スキーマを適応することができますが、ほとんどの場合、最適ではないインデックスを再現する必要があります.
Info : Read more about updating Azure Search index.
もう一つのアプローチは紺碧のコスモスDBに移動することです、しかし、それは価格タグで来ます.あなたはfree tier , しかし、これはあなたに割引を与えます.あなたがより多くを使うならば、あなたはあなたの使用のために支払いを始めます.
今年初めにビルドで、彼らはまた、夏にプレビューでリリースされたServerlessティアがあると発表しました.良いニュースは、この層が利用可能になり、私は私のアプリを持っているニーズに合うことです.
と言った.最初に、私はAzureテーブル記憶からCosmos DBまで私の内容を押しやりました.すべての良いので、私は私のデータを取得するために私のazure関数を作成し始めた.我々は+ 2000キーについて話したので、私はいくつかのページングを実装し、別の問題につまずいた.コスモスDB、その継続トークンのみサポートされていた.NETとJava SDK.
Info : I use Node.js (TypeScript) straightforward, I like to work with TypeScript/JavaScript, and Azure Static Web Apps only supports TS/JS functions in the preview.
ノード内の継続トークン。js
ノードに従うとき.JSドキュメントのすべての項目を取得するには、次のコードスニペットを示します
const querySpec = { query: "SELECT * from c" };
const { resources: items } = await container.items.query(querySpec).fetchAll();
代わりにfetchAll()
, あなたもfetchNext()
. このメソッドはフィードから次のバッチを取得します.オプションとして、あなたはcontinuationToken
. 問題は、このトークンは常にnull
. レスポンスヘッダをチェックすると、次のようになります.const querySpec = { query: "SELECT * from c" };
const resources = await container.items.query(querySpec).fetchNext();
宇宙からのヘッダー私はクエリオプションを使用して、私はあなたが
PartitionKey
クエリオプションには、より多くのヘッダを返します.返り値トークン
また、あなたは
x-ms-continuation
ヘッダをcontinuationToken
ヘッダの値.コードで使用する方法は次のとおりです.
const results = await container.items.query(querySpec, {
maxItemCount: 20,
partitionKey: "category",
continuationToken
}).fetchNext();
return {
items: results.resources,
nextPageToken: results.continuationToken
};
Reference
この問題について(ノードでColorsDBクエリ継続トークンを取得します.js), 我々は、より多くの情報をここで見つけました https://dev.to/estruyf/retrieving-the-cosmosdb-query-continuation-token-in-node-js-485pテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol