Overview
.NET/ C#ドライバーは NuGetパッケージで、 MongoDBに接続して通信するために使用できます 。このガイドでは、 .NET/ C#ドライバー を使用してMongoDB AtlasでホストされているMongoDBクラスターに接続するアプリケーションを作成する方法について説明します。
Tip
MongoDB Atlas は、MongoDB 配置をホストする完全管理のクラウドデータベース サービスです。このガイドの手順に従い、独自の無料(クレジット カード不要)MongoDB Atlas 配置を作成できます。
このガイドに従って、サンプルC#アプリケーションをMongoDB Atlas配置に接続します。別のドライバーまたは プログラミング言語を使用してMongoDBに接続する場合は、公式ドライバーのリストを参照してください。
.NET/ C#ドライバーをダウンロード
これらの手順を完了すると、新しい.NETフレームワークプロジェクトと.NET/ C#ドライバーがインストールされます。
MongoDB Atlasクラスターの配置
MongoDB Atlas で無料のクラスターを作成して、データを保存および管理できます。MongoDB Atlas は、クラウドで MongoDB データベースをホストし、管理します。
Atlas に無料のMongoDB配置を作成します。
MongoDB の使用開始ガイドを完了して、新しい Atlas アカウントを設定し、サンプルデータを新しい無料階層の MongoDB 配置にロードします。
これらの手順を完了すると、Atlas に新しい無料クラスター、データベースユーザーの認証情報、およびデータベースにロードされたサンプルデータが用意されます。
接続文字列の作成
MongoDB配置に接続するには、 接続string とも呼ばれる 接続 URIMongoDB を提供します。これは、 配置に接続する方法と接続中の動作をドライバーに指示します。
接続stringには、配置のホスト名またはIPアドレスとポート、認証メカニズム、ユーザー認証情報(該当する場合)、および接続オプションが含まれます。
Tip
自己管理型(Atlas 以外)配置に接続するには、MongoClient の作成 を参照してください。
MongoDB Atlas接続文字列を見つけます。
前のステップで作成した配置の接続文字列を検索するには、Atlas アカウントにログインし、Database セクションの下の Clusters ページに移動します。新しい配置で Connect ボタンをクリックします。

データベースユーザーをまだ設定していない場合、 MongoDB は新しいユーザーを作成して設定するように要求します。
Connect to your application セクションの下の Drivers ボタンをクリックし、Driver 選択メニューと Version 選択メニューからインストールしたバージョンに最適化されたバージョンから [C# / .NET] を選択します。
接続文字列のみを表示するには、View full code sample オプションが選択されていないことを確認します。
環境変数を設定します。
シェルで次のコードを実行して、MongoDB接続文字列を環境変数に保存します。<your MongoDB URI> を、前の手順でファイルに保存した接続文字列に置き換えます。
export MONGODB_URI="<your MongoDB URI>"注意
PowerShell
Microsoft PowerShell を使用している場合は、代わりに次のコマンドを実行します。
set MONGODB_URI="<your MongoDB URI>"認証情報を環境変数に保存するのは、 ソースコードで認証情報をハードコーディングするよりも安全です。
これらの手順を完了すると、データベースのユーザー名とパスワードを含む接続stringが作成されます。
サンプル クエリの実行
.NET/C#アプリケーションを作成します。
次のコードをコピーして、アプリケーション内の Program.csファイルに貼り付けます。ドキュメントのクエリに、BsonDocument または Plain Old CLR Object(POCO)を使用することを選択できます。各アプローチの例を表示するには、対応するタブを選択します。
using MongoDB.Bson;using MongoDB.Bson.IO;using MongoDB.Driver;
var connectionString = Environment.GetEnvironmentVariable("MONGODB_URI");if (connectionString == null){ Console.WriteLine("You must set your 'MONGODB_URI' environment variable. To learn how to set it, see https://www.mongodb.com/ja-jp/docs/drivers/csharp/current/get-started/create-connection-string"); Environment.Exit(0);}
var client = new MongoClient(connectionString);
var collection = client.GetDatabase("sample_mflix").GetCollection<BsonDocument>("movies");
var filter = Builders<BsonDocument>.Filter.Eq("title", "Back to the Future");
var document = collection.Find(filter).First();
Console.WriteLine(document.ToJson(new JsonWriterSettings { Indent = true }));using MongoDB.Bson;using MongoDB.Bson.Serialization.Attributes;using MongoDB.Driver;
var connectionString = Environment.GetEnvironmentVariable("MONGODB_URI");if (connectionString == null){ Console.WriteLine("You must set your 'MONGODB_URI' environment variable. To learn how to set it, see https://www.mongodb.com/ja-jp/docs/drivers/csharp/current/get-started/create-connection-string"); Environment.Exit(0);}
var client = new MongoClient(connectionString);
var collection = client.GetDatabase("sample_mflix").GetCollection<Movie>("movies");
var filter = Builders<Movie>.Filter.Eq(m => m.Title, "Back to the Future");
var movie = collection.Find(filter).First();
Console.WriteLine($"Title: {movie.Title}");Console.WriteLine($"Plot: {movie.Plot}");Console.WriteLine($"Genres: {string.Join(", ", movie.Genres ?? [])}");
[BsonIgnoreExtraElements]public class Movie{ [BsonId] public ObjectId Id { get; set; }
[BsonElement("title")] public string? Title { get; set; }
[BsonElement("plot")] public string? Plot { get; set; }
[BsonElement("genres")] public List<string>? Genres { get; set; }}Tip
.NET/ C#ドライバーで POCO を使用する方法の詳細については、POCOガイド を参照してください。
アプリケーションを実行します。
このアプリケーションを起動するには、shell で次のコマンドを実行します。
dotnet run csharp-quickstart.csproj出力には、検索された 映画ドキュメントの詳細が含まれます。以下は、各アプローチの 出力を示しています。
{ _id: ..., plot: 'A young man is accidentally sent 30 years into the past...', genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ], ... title: 'Back to the Future', ...}Title: Back to the FuturePlot: A young man is accidentally sent 30 years into the past...Genres: Adventure, Comedy, Sci-FiTip
エラーが発生した場合や出力が表示されない場合は、適切な接続文字列が指定され、サンプルデータがロードされていることを確認してください。
これらの手順を完了すると、ドライバーを使用して MongoDB 配置に接続し、サンプル データに対してクエリを実行し、結果を出力する動作するアプリケーションが作成されます。
次のステップ
チュートリアルを完了しました。
このチュートリアルでは、 MongoDB AtlasでホストされているMongoDBデプロイに接続し、クエリに一致するドキュメントを検索するC#アプリケーションを作成しました。
.NET/ C#ドライバーの詳細については、次のリソースを参照してください。
「ドキュメントの挿入」セクションで、ドキュメントを挿入する方法を学びます。
「クエリフィルターの作成」セクションで、ドキュメントを検索する方法について学びます。
ドキュメントを削除する方法については、「ドキュメントの削除」セクションを参照してください。
注意
このチュートリアルで問題が発生した場合は、 MongoDB Stack Overflowページ または MongoDB Reddit Community でサポートを依頼するか、このページの右側または右下にある Rate this pageタブを使用してフィードバックを送信してください。
