Azure Cosmos DB: SQL API の .NET のサンプルAzure Cosmos DB: .NET examples for the SQL API

適用対象: SQL API

azure-cosmos-dotnet-v2 GitHub リポジトリには、Azure Cosmos DB リソースに対する CRUD などの一般的な操作を実行する最新の .NET サンプル ソリューションがあります。The azure-cosmos-dotnet-v2 GitHub repository includes the latest .NET sample solutions to perform CRUD and other common operations on Azure Cosmos DB resources. この記事では、次の内容について説明します。This article provides:

  • 各サンプル C# プロジェクト ファイルのタスクへのリンク。Links to the tasks in each of the example C# project files.
  • 関連する API リファレンス コンテンツへのリンク。Links to the related API reference content.

.NET SDK バージョン 3.0 (プレビュー) のコード サンプルについては、azure-cosmos-dotnet-v3 GitHub リポジトリの最新のサンプルをご覧ください。For .NET SDK Version 3.0 (Preview) code samples, see the latest samples in the azure-cosmos-dotnet-v3 GitHub repository.

前提条件Prerequisites

[Azure の開発] ワークフローがインストールされた Visual Studio 2019Visual Studio 2019 with the Azure development workflow installed

Microsoft.Azure.DocumentDB NuGet パッケージThe Microsoft.Azure.DocumentDB NuGet package

Azure サブスクリプションまたは Cosmos DB の無料試用版アカウントAn Azure subscription or free Cosmos DB trial account

注意

このサンプルは自己完結型で、CreateDocumentCollectionAsync() を複数回呼び出して自身を設定し、クリーンアップします。The samples are self-contained, and set up and clean up after themselves with multiple calls to CreateDocumentCollectionAsync(). これが行われるたびに、ご使用のコレクションのパフォーマンス レベルにおける 1 時間の使用料がご自分のサブスクリプションに課金されます。Each occurrence bills your subscription for one hour of usage in your collection's performance tier.

データベースのサンプルDatabase examples

サンプルの DatabaseManagement プロジェクトの RunDatabaseDemo メソッドは、次のタスクを実行する方法を示しています。The RunDatabaseDemo method of the sample DatabaseManagement project shows how to do the following tasks. 以下のサンプルを実行する前に Azure Cosmos データベースについて知るために、「データベース、コンテナー、アイテムの操作」を参照してください。To learn about Azure Cosmos databases before you run the following samples, see Work with databases, containers, and items.

タスクTask API リファレンスAPI reference
データベースの作成Create a database DocumentClient.CreateDatabaseIfNotExistsAsyncDocumentClient.CreateDatabaseIfNotExistsAsync
ID でのデータベースの読み取りRead a database by ID DocumentClient.ReadDatabaseAsyncDocumentClient.ReadDatabaseAsync
すべてのデータベースの読み取りRead all the databases DocumentClient.ReadDatabaseFeedAsyncDocumentClient.ReadDatabaseFeedAsync
データベースの削除Delete a database DocumentClient.DeleteDatabaseAsyncDocumentClient.DeleteDatabaseAsync

コレクションのサンプルCollection examples

サンプルの CollectionManagement プロジェクトの RunCollectionDemo メソッドは、次のタスクを実行する方法を示しています。The RunCollectionDemo method of the sample CollectionManagement project shows how to do the following tasks. 以下のサンプルを実行する前に Azure Cosmos コレクションについて知るために、「データベース、コンテナー、アイテムの操作」を参照してください。To learn about Azure Cosmos collections before you run the following samples, see Work with databases, containers, and items.

タスクTask API リファレンスAPI reference
コレクションの作成Create a collection DocumentClient.CreateDocumentCollectionIfNotExistsAsyncDocumentClient.CreateDocumentCollectionIfNotExistsAsync
コレクションの構成済みのパフォーマンスの変更Change configured performance of a collection DocumentClient.ReplaceOfferAsyncDocumentClient.ReplaceOfferAsync
ID でのコレクションの取得Get a collection by ID DocumentClient.ReadDocumentCollectionAsyncDocumentClient.ReadDocumentCollectionAsync
データベース内のすべてのコレクションの読み取りRead all the collections in a database DocumentClient.ReadDocumentCollectionFeedAsyncDocumentClient.ReadDocumentCollectionFeedAsync
コレクションの削除Delete a collection DocumentClient.DeleteDocumentCollectionAsyncDocumentClient.DeleteDocumentCollectionAsync

ドキュメントのサンプルDocument examples

サンプルの DocumentManagement プロジェクトの RunDocumentsDemo メソッドは、次のタスクを実行する方法を示しています。The RunDocumentsDemo method of the sample DocumentManagement project shows how to do the following tasks. 以下のサンプルを実行する前に Azure Cosmos ドキュメントについて知るために、「データベース、コンテナー、アイテムの操作」を参照してください。To learn about Azure Cosmos documents before you run the following samples, see Work with databases, containers, and items.

タスクTask API リファレンスAPI reference
ドキュメントの作成Create a document DocumentClient.CreateDocumentAsyncDocumentClient.CreateDocumentAsync
ID でのドキュメントの読み取りRead a document by ID DocumentClient.ReadDocumentAsyncDocumentClient.ReadDocumentAsync
コレクション内のすべてのドキュメントの読み取りRead all the documents in a collection DocumentClient.ReadDocumentFeedAsyncDocumentClient.ReadDocumentFeedAsync
ドキュメントのクエリQuery for documents DocumentClient.CreateDocumentQueryDocumentClient.CreateDocumentQuery
ドキュメントの置換Replace a document DocumentClient.ReplaceDocumentAsyncDocumentClient.ReplaceDocumentAsync
ドキュメントのアップサートUpsert a document DocumentClient.UpsertDocumentAsyncDocumentClient.UpsertDocumentAsync
ドキュメントの削除Delete a document DocumentClient.DeleteDocumentAsyncDocumentClient.DeleteDocumentAsync
.NET 動的オブジェクトの操作Working with .NET dynamic objects DocumentClient.CreateDocumentAsyncDocumentClient.CreateDocumentAsync
DocumentClient.ReadDocumentAsyncDocumentClient.ReadDocumentAsync
DocumentClient.ReplaceDocumentAsyncDocumentClient.ReplaceDocumentAsync
条件付き ETag チェックでドキュメントを置換するReplace document with conditional ETag check DocumentClient.AccessConditionDocumentClient.AccessCondition
Documents.Client.AccessConditionTypeDocuments.Client.AccessConditionType
ドキュメントが変更された場合にのみ、ドキュメントを読み取るRead document only if document has changed DocumentClient.AccessConditionDocumentClient.AccessCondition
Documents.Client.AccessConditionTypeDocuments.Client.AccessConditionType

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

サンプルの IndexManagement プロジェクトの RunIndexDemo メソッドは、次のタスクを実行する方法を示しています。The RunIndexDemo method of the sample IndexManagement project shows how to do the following tasks. 以下のサンプルを実行する前に Azure Cosmos DB におけるインデックス作成について知るために、インデックス ポリシーインデックスの種類インデックスのパスに関する記事を参照してください。To learn about indexing in Azure Cosmos DB before you run the following samples, see index policies, index types, and index paths.

タスクTask API リファレンスAPI reference
インデックスからのドキュメントの除外Exclude a document from the index IndexingDirective.ExcludeIndexingDirective.Exclude
Lazy インデックス作成の使用Use Lazy indexing IndexingPolicy.IndexingModeIndexingPolicy.IndexingMode
インデックスから指定されたドキュメント パスの除外Exclude specified document paths from the index IndexingPolicy.ExcludedPathsIndexingPolicy.ExcludedPaths
ハッシュ インデックス付きパス上の範囲スキャン操作の強制実行Force a range scan operation on a hash indexed path FeedOptions.EnableScanInQueryFeedOptions.EnableScanInQuery
文字列の範囲のインデックスの使用Use range indexes on strings IndexingPolicy.IncludedPathsIndexingPolicy.IncludedPaths
RangeIndexRangeIndex
インデックス変換の実行Perform an index transform ReplaceDocumentCollectionAsyncReplaceDocumentCollectionAsync

地理空間のサンプルGeospatial examples

サンプルの Geospatial プロジェクトの RunDemoAsync メソッドは、次のタスクを実行する方法を示しています。The RunDemoAsync method of the sample Geospatial project shows how to do the following tasks. 以下のサンプルを実行する前に GeoJSON データと地理空間データについて知るために、地理空間データと GeoJSON 位置データに関する記事を参照してください。To learn about GeoJSON and geospatial data before you run the following samples, see Use geospatial and GeoJSON location data.

タスクTask API リファレンスAPI reference
新しいコレクションの地理空間インデックス作成を有効にするEnable geospatial indexing on a new collection IndexingPolicyIndexingPolicy
IndexKind.SpatialIndexKind.Spatial
DataType.PointDataType.Point
GeoJSON ポイントでのドキュメントの挿入Insert documents with GeoJSON points DocumentClient.CreateDocumentAsyncDocumentClient.CreateDocumentAsync
DataType.PointDataType.Point
指定された距離内のポイントの検索Find points within a specified distance ST_DISTANCEST_DISTANCE
GeometryOperationExtensions.DistanceGeometryOperationExtensions.Distance
ポリゴン内のポイントの検索Find points within a polygon ST_WITHINST_WITHIN
GeometryOperationExtensions.WithinGeometryOperationExtensions.Within
PolygonPolygon
既存のコレクションの地理空間インデックス作成を有効にするEnable geospatial indexing on an existing collection DocumentClient.ReplaceDocumentCollectionAsyncDocumentClient.ReplaceDocumentCollectionAsync
DocumentCollection.IndexingPolicyDocumentCollection.IndexingPolicy
ポイントとポリゴンのデータの検証Validate point and polygon data ST_ISVALIDST_ISVALID
ST_ISVALIDDETAILEDST_ISVALIDDETAILED
GeometryOperationExtensions.IsValidGeometryOperationExtensions.IsValid
GeometryOperationExtensions.IsValidDetailedGeometryOperationExtensions.IsValidDetailed

クエリのサンプルQuery examples

サンプルの Queries プロジェクトの RunDemoAsync メソッドは、SQL クエリ文法、LINQ プロバイダーとクエリ、およびラムダを使用して、次のタスクを実行する方法を示しています。The RunDemoAsync method of the sample Queries project shows how to do the following tasks using the SQL query grammar, the LINQ provider with query, and Lambda. 以下のサンプルを実行する前に Azure Cosmos DB の SQL クエリ リファレンスについて知るために、「Azure Cosmos DB の SQL クエリの例」を参照してください。To learn about the SQL query reference in Azure Cosmos DB before you run the following samples, see SQL query examples for Azure Cosmos DB.

タスクTask API リファレンスAPI reference
すべてのドキュメントのクエリQuery for all documents DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery
= = を使用する等値のクエリQuery for equality using == DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery
!= と NOT を使用する非等値のクエリQuery for inequality using != and NOT DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery
>、<、>=、<= のような範囲演算子を使用するクエリQuery using range operators like >, <, >=, <= DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery
文字列に対して範囲演算子を使用するクエリQuery using range operators against strings DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery
Order By を使用するクエリQuery with ORDER BY DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery
集計関数を使用するクエリQuery with aggregate functions DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery
サブドキュメントの操作Work with subdocuments DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery
ドキュメント間結合を使用するクエリQuery with intra-document Joins DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery
文字列、数値、および配列の演算子を使用するクエリQuery with string, math, and array operators DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery
SqlQuerySpec を使用してパラメーター化された SQL を使用するクエリQuery with parameterized SQL using SqlQuerySpec DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery
SqlQuerySpecSqlQuerySpec
明示的なページングを使用するクエリQuery with explicit paging DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery
並列でのパーティション分割コレクションのクエリQuery partitioned collections in parallel DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery
パーティション分割コレクションに対する Order By を使用したクエリQuery with ORDER BY for partitioned collections DocumentQueryable.CreateDocumentQueryDocumentQueryable.CreateDocumentQuery

変更フィードの例Change feed examples

サンプルの ChangeFeed プロジェクトの RunDemoAsync メソッドは、次のタスクを実行する方法を示しています。The RunDemoAsync method of the sample ChangeFeed project shows how to do the following tasks. 以下のサンプルを実行する前に Azure Cosmos DB の変更フィードについて知るために、Azure Cosmos DB の変更フィードの読み取り変更フィード プロセッサに関する記事を参照してください。To learn about change feed in Azure Cosmos DB before you run the following samples, see Read Azure Cosmos DB change feed and Change feed processor.

タスクTask API リファレンスAPI reference
変更フィードを読み取るRead change feed DocumentClient.CreateDocumentChangeFeedQueryDocumentClient.CreateDocumentChangeFeedQuery
パーティション キーの範囲を読み取るRead partition key ranges DocumentClient.ReadPartitionKeyRangeFeedAsyncDocumentClient.ReadPartitionKeyRangeFeedAsync

変更フィード プロセッサのサンプル ChangeFeedMigrationTool は、変更フィード プロセッサ ライブラリを使用してデータを別の Cosmos コンテナーにレプリケートする方法を示しています。The change feed processor sample, ChangeFeedMigrationTool, shows how to use the change feed processor library to replicate data to another Cosmos container.

サーバー側プログラミングのサンプルServer-side programming examples

サンプルの ServerSideScripts プロジェクトの RunDemoAsync メソッドは、次のタスクを実行する方法を示しています。The RunDemoAsync method of the sample ServerSideScripts project shows how to do the following tasks. 以下のサンプルを実行する前に Azure Cosmos DB のサーバー側プログラミングについて知るために、「ストアド プロシージャ、トリガー、およびユーザー定義関数」を参照してください。To learn about server-side programming in Azure Cosmos DB before you run the following samples, see Stored procedures, triggers, and user-defined functions.

タスクTask API リファレンスAPI reference
ストアド プロシージャの作成Create a stored procedure DocumentClient.CreateStoredProcedureAsyncDocumentClient.CreateStoredProcedureAsync
ストアド プロシージャの実行Execute a stored procedure DocumentClient.ExecuteStoredProcedureAsyncDocumentClient.ExecuteStoredProcedureAsync
ストアド プロシージャのドキュメントフィードの読み取りRead a document feed for a stored procedure DocumentClient.ReadDocumentFeedAsyncDocumentClient.ReadDocumentFeedAsync
ORDER BY を使用するストアド プロシージャの作成Create a stored procedure with ORDER BY DocumentClient.CreateStoredProcedureAsyncDocumentClient.CreateStoredProcedureAsync
プリトリガーの作成Create a pre-trigger DocumentClient.CreateTriggerAsyncDocumentClient.CreateTriggerAsync
ポストトリガーの作成Create a post-trigger DocumentClient.CreateTriggerAsyncDocumentClient.CreateTriggerAsync
ユーザー定義関数 (UDF) の作成Create a user-defined function (UDF) DocumentClient.CreateUserDefinedFunctionAsyncDocumentClient.CreateUserDefinedFunctionAsync

ユーザー管理のサンプルUser management examples

サンプルの UserManagement プロジェクトの RunDemoAsync メソッドは、次のタスクを実行する方法を示しています。The RunDemoAsync method of the sample UserManagement project shows how to do the following tasks:

タスクTask API リファレンスAPI reference
ユーザーの作成Create a user DocumentClient.CreateUserAsyncDocumentClient.CreateUserAsync
コレクションまたはドキュメントのアクセス許可の設定Set permissions on a collection or document DocumentClient.CreatePermissionAsyncDocumentClient.CreatePermissionAsync
ユーザーのアクセス許可の一覧の取得Get a list of a user's permissions DocumentClient.ReadUserAsyncDocumentClient.ReadUserAsync
DocumentClient.ReadPermissionFeedAsyncDocumentClient.ReadPermissionFeedAsync