JS 用の Azure Cosmos DB for NoSQL SDK の例

適用対象: NoSQL

Azure Cosmos DB リソースに対する CRUD 操作などの一般的な操作を実行するサンプル ソリューションは、Azure Cosmos DB 用の JavaScript SDK の GitHub リポジトリにあります。 この記事では、次の内容について説明します。

  • 各 Node.js サンプル プロジェクト ファイルのタスクへのリンク。
  • 関連する API リファレンス コンテンツへのリンク。

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。

Azure サブスクリプション不要で、契約もなしで Azure Cosmos DB を無料で試すことができます。 または、Azure Cosmos DB Free レベルのアカウントを作成して、最初の 1000 RU/秒と 25 GB のストレージを無料でご利用いただけます。 また、URI https://localhost:8081Azure Cosmos DB エミュレーターを使用することもできます。 エミュレーターで使用するキーについては、「要求の認証」を参照してください。

JavaScript SDK も必要となります。

Note

各サンプルは自己完結型であり、自身をセットアップし、自身をクリーンアップします。 そのため、一連のサンプルで、Containers.create の呼び出しが複数回発行されます。 これが行われるたびに、作成するコンテナーのパフォーマンス レベルに従い、1 時間分の使用量がサブスクリプションに課金されます。

データベースのサンプル

DatabaseManagement ファイルには、データベースに対する CRUD 操作の実行方法が紹介されています。 以下のサンプルを実行する前に Azure Cosmos DB データベースについて知るには、データベース、コンテナー、アイテムの操作に関する概念記事をご覧ください。

タスク API リファレンス
データベースが存在しない場合は作成する Databases.createIfNotExists
アカウントのデータベースの一覧表示 Databases.readAll
ID でのデータベースの読み取り Database.read
データベースの削除 Database.delete

コンテナーの例

ContainerManagement ファイルには、コンテナーに対する CRUD 操作の実行方法が紹介されています。 以下のサンプルを実行する前に Azure Cosmos DB のコレクションについて知るには、データベース、コンテナー、アイテムの操作に関する概念記事を参照してください。

タスク API リファレンス
コンテナーが存在しない場合は作成する Containers.createIfNotExists
アカウントのコンテナーの一覧表示 Containers.readAll
コンテナーの定義の読み取り Container.read
コンテナーの削除 Container.delete

項目の例

ItemManagement ファイルには、項目に対する CRUD 操作の実行方法が紹介されています。 以下のサンプルを実行する前に Azure Cosmos DB のドキュメントについて知るには、データベース、コンテナー、アイテムの操作に関する概念記事を参照してください。

タスク API リファレンス
項目の作成 Items.create
コンテナー内のすべての項目の読み取り Items.readAll
ID での項目の読み取り Item.read
項目の読み取り (項目が変更されている場合のみ) Item.read - RequestOptions.accessCondition
ドキュメントのクエリ Items.query
項目の置換 Item.replace
条件付き ETag チェックによる項目の置換 Item.replace - RequestOptions.accessCondition
項目の削除 Item.delete

インデックス作成のサンプル

IndexManagement ファイルには、インデックスの管理方法が紹介されています。 以下のサンプルを実行する前に Azure Cosmos DB におけるインデックス作成について知るために、インデックス作成ポリシーインデックスの種類インデックスのパスに関する概念記事を参照してください。

タスク API リファレンス
特定の項目の手動でのインデックス作成 RequestOptions.indexingDirective: 'include'
インデックスからの特定の項目の手動での除外 RequestOptions.indexingDirective: 'exclude'
インデックスからのパスの除外 IndexingPolicy.ExcludedPath
文字列のパスでの範囲インデックスの作成 IndexKind.RangeIndexingPolicyItems.query
既定の indexPolicy を使用してコンテナーを作成し、そのコンテナーをオンラインで更新する Containers.create

サーバー側プログラミングのサンプル

この index.ts ファイルは、次のタスクを実行する方法を示しています。 以下のサンプルを実行する前に、Azure Cosmos DB のサーバーサイド プログラミングがどのようなものかを説明している「ストアド プロシージャ、トリガー、およびユーザー定義関数」を読むこともできます。

タスク API リファレンス
ストアド プロシージャの作成 StoredProcedures.create
ストアド プロシージャの実行 StoredProcedure.execute
ストアド プロシージャを使用した一括更新 StoredProcedure.execute

サーバー側プログラミングの詳細については、「Azure Cosmos DB server-side programming: Stored procedures, database triggers, and UDFs (Azure Cosmos DB のサーバー側プログラミング: ストアド プロシージャ、データベース トリガー、UDF)」をご覧ください。

Azure Identity (AAD) 認証の例

この AADAuth.ts ファイルは、次のタスクを実行する方法を示しています。

タスク API リファレンス
Create credential object from @azure/identity API
キー aadCredentials を使用してクライアント オブジェクトに資格情報を渡す API
AAD 資格情報を使用して Cosmos クライアントを実行する API

その他のサンプル

以下のキュレーションされたサンプルは、一般的なシナリオを示しています。

タスク API リファレンス
クエリ スループットの変更 API
クエリ スループットの取得 API
Cosmos DB リソースへのスコープ指定アクセスを許可するための SasTokens の使用 API

次の手順

Azure Cosmos DB への移行のための容量計画を実行しようとしていますか? 容量計画のために、既存のデータベース クラスターに関する情報を使用できます。