接続ガイド
このガイドでは、.NET/C# ドライバーを使用して MongoDB インスタンスまたはレプリカ セットの配置に接続する方法を説明します。
接続URI
接続 URI(接続文字列とも呼ばれます)は、MongoDB 配置に接続する方法と、接続中の動作をドライバーに指示します。
標準の接続文字列には次の部分が含まれます。
ピース | 説明 |
---|---|
| 必須: これを標準接続形式の文字列として識別するプレフィックス。 |
| 任意: 認証資格情報。これらを含めると、クライアントは |
| 必須: MongoDB が実行中のホストと任意のポート番号。ポート番号を指定しない場合、ドライバーはデフォルトのポート |
| 任意: 接続文字列に |
| 任意。接続固有のオプションを |
接続 URI を使用するには、それを文字列として MongoClient
コンストラクターに渡します。次の例では、ドライバーはサンプル接続 URI を使用して、localhost
のポート 27017
上の MongoDB インスタンスに接続します。
using MongoDB.Driver; // Sets the connection URI const string connectionUri = "mongodb://localhost:27017"; // Creates a new client and connects to the server var client = new MongoClient(connectionUri);
Tip
クライアントの再利用
各 MongoClient
はデータベースへの接続のプールを表すため、ほとんどのアプリケーションでは、複数のリクエスト間でも MongoClient
のインスタンスが 1 つだけ必要になります。ドライバーで接続プールがどのように機能するかについて詳しくは、「FAQ」ページを参照してください。
接続 の作成方法の詳細について は、MongoDB マニュアルのstring を参照してください。
MongoClientSettings
MongoClientSettings
オブジェクトを使用すると、接続 URI ではなくコード内で接続を構成できます。MongoClientSettings
オブジェクトを使用するには、クラスのインスタンスを作成し、それを引数として MongoClient
コンストラクターに渡します。
次の例では、ドライバーは MongoClientSettings
オブジェクトを使用して、localhost
のポート 27017
上の MongoDB インスタンスに接続します。
using MongoDB.Driver; // Creates a MongoClientSettings object var settings = new MongoClientSettings() { Scheme = ConnectionStringScheme.MongoDB, Server = new MongoServerAddress("localhost", 27017) }; // Creates a new client and connects to the server var client = new MongoClient(settings);
その他の接続先
Atlas への接続
Atlas 上の MongoDB 配置に接続するには、クライアントを作成します。MongoClientSettings
オブジェクトを MongoClient
コンストラクターに渡すことで、文字列とその他のクライアント オプションを使用するクライアントを作成できます。
接続 URI を指定するには、それを FromConnectionString()
メソッドに渡します。これにより、新しい MongoClientSettings
インスタンスが返されます。その他のクライアント オプションを指定するには、MongoClientSettings
オブジェクトの関連フィールドを設定します。
新しいサーバー バージョンにアップグレードするときに重大な変更を回避するために、Stable API バージョンをクライアント オプションとして設定できます。Stable API 機能について詳しくは、「Stable API」ページをご覧ください。
次のコードは、MongoDB 配置に接続するときに接続文字列と Stable API クライアント オプションを指定して、接続が成功したことを確認する方法を示しています。
using MongoDB.Driver; using MongoDB.Bson; // Replace the placeholder with your Atlas connection string const string connectionUri = "<connection string>"; var settings = MongoClientSettings.FromConnectionString(connectionUri); // Sets the ServerApi field of the settings object to Stable API version 1 settings.ServerApi = new ServerApi(ServerApiVersion.V1); // Creates a new client and connects to the server var client = new MongoClient(settings); // Sends a ping to confirm a successful connection try { var result = client.GetDatabase("admin").RunCommand<BsonDocument>(new BsonDocument("ping", 1)); Console.WriteLine("Pinged your deployment. You successfully connected to MongoDB!"); } catch (Exception ex) { Console.WriteLine(ex);}
Tip
Atlas ドライバー接続ガイドに従って接続文字列を取得します。
レプリカセットへの接続
レプリカセット配置に接続するには、レプリカセットのノードのホスト名(または IP アドレス)とポート番号を指定します。
レプリカセット内のホストの完全なリストを提供できない場合は、レプリカセット内の 1 つ以上のホストを指定し、次のいずれかの方法でドライバーに自動検出を実行するように指示できます。
replicaSet
パラメーターの値としてレプリカセットの名前を指定します。directConnection
パラメーターの値としてfalse
を指定します。レプリカセットに複数のホストを指定します。
次の例では、ドライバーはサンプル接続 URI を使用して、sample.host1
を含む 3 つの異なるホストのポート 27017
で実行されている MongoDB レプリカセット sampleRS
に接続します。
using MongoDB.Driver; // Sets the connection URI than includes the replica set name const string connectionUri = "mongodb://sample.host1:27017/?replicaSet=sampleRS"; // Creates a new client and connects to the server var client = new MongoClient(connectionUri);