Docs Menu
Docs Home
/ / /
C#/.NET
/ /

接続ガイド

項目一覧

  • 接続URI
  • MongoClientSettings
  • その他の接続先
  • Atlas への接続
  • レプリカセットへの接続

このガイドでは、.NET/C# ドライバーを使用して MongoDB インスタンスまたはレプリカ セットの配置に接続する方法を説明します。

接続 URI接続文字列とも呼ばれます)は、MongoDB 配置に接続する方法と、接続中の動作をドライバーに指示します。

標準の接続文字列には次の部分が含まれます。

ピース
説明

mongodb://

必須: これを標準接続形式の文字列として識別するプレフィックス。

username:password@

任意: 認証資格情報。これらを含めると、クライアントは authSource で指定されたデータベースに対してユーザーを認証します。

host[:port]

必須: MongoDB が実行中のホストと任意のポート番号。ポート番号を指定しない場合、ドライバーはデフォルトのポート 27017 を使用します。

/defaultauthdb

任意: 接続文字列に username:password@ 認証資格情報が含まれている一方で、authSource オプションが含まれていない場合に使用する認証データベース。この部分を含めない場合、クライアントは admin データベースに対してユーザーを認証します。

?<options>

任意。接続固有のオプションを <name>=<value> ペアとして指定するクエリ文字列です。これらのオプションの詳細については、「接続オプション」を参照してください。

接続 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オブジェクトを使用すると、接続 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 上の 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);

戻る

接続