Overview
このガイドでは、接続string とMongoClient
{0 オブジェクトを使用して、さまざまなタイプのMongoDB 配置に接続する方法を説明します。
Atlas
MongoDBAtlas上の 配置に接続するには、 接続string に次の要素を含めます。
Atlas クラスターの URL
MongoDB ユーザー名
MongoDB パスワード
次に、接続stringを MongoClient
コンストラクターに渡します。
Atlas に接続するときは、Atlas が MongoDB Server の新しいバージョンにアップグレードするときに重大な変更を回避するために、 Stable API クライアント オプションを使用することをお勧めします。 Stable API 機能について詳しくは、 Stable APIガイドをご覧ください。
次のコードは、 Node.jsドライバーを使用して Atlas クラスターに接続する方法を示しています。このコードでは、Stable APIバージョンを指定するために server_api
フィールドも使用されます。
const { MongoClient, ServerApiVersion } = require("mongodb"); // Replace the placeholder with your Atlas connection string const uri = "<connection string>"; // Creates a MongoClient with a MongoClientOptions object to set the Stable API version const client = new MongoClient(uri, { serverApi: { version: ServerApiVersion.v1, strict: true, deprecationErrors: true, } } ); async function run() { try { // Connects the client to the server (optional starting in v4.7) await client.connect(); // Sends a ping to confirm a successful connection await client.db("admin").command({ ping: 1 }); console.log("Pinged your deployment. You successfully connected to MongoDB!"); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
ローカル配置
MongoDBデプロイ のスタンドアロンスタンドアロン配置 に接続するには、サーバーのホストを指定します。オプションで、サーバーのポートを指定します。ポートが指定されていない場合、デフォルトのポートは 27017
です。
次のコードに示すように、接続文字列を使用して、接続するホストとポートを指定できます。
const client = new MongoClient("mongodb://host1:27017");
ホストを localhost
として指定することもできます。次のコード例では、指定されたポートで localhost
に接続します。
const client = new MongoClient("mongodb://localhost:27017");
レプリカセット
レプリカセットに接続するには、レプリカセットの一部であるすべてのノードを指定することをお勧めします。1 つ以上のノードが使用できなくなった場合、すべてのノードを指定することで、1 つのノードが使用可能な場合、ドライバーは引き続きレプリカセットに接続できます。
ただし、レプリカセット内の任意の 1 つのノードのアドレスをドライバーに渡すには十分です。ノードはプライマリ である必要はなく、 非表示のノードでもかまいません。その後、ドライバーは残りのノードを自動的に検出します。
次の例は、接続文字列を使用してレプリカセットに接続する方法と、replicaSet
接続文字列オプションを使用して接続時にレプリカセット名を確認する方法を示しています。
const client = new MongoClient("mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRs");
注意
Docker のレプリカセット
レプリカセットがDockerで実行される場合、公開されるMongoDBエンドポイントは 1 つだけです。この場合、レプリカセットは検出できません。接続 URI で directConnection=false
を指定するか、このオプションを未設定のままにすると、アプリケーションがその接続に接続できなくなる可能性があります。
テスト環境または開発環境では、directConnection=true
を指定してレプリカセットに接続できます。本番環境では、Docker 仮想ネットワークの外部から各 MongoDB インスタンスにアクセスできるようにクラスターを構成することを推奨します。
DNS サービス検出
DNS サービス検出を使用して接続しているサービスの DNS SRVレコードを検索するには、接続文字列で SRV 接続形式を指定します。 この形式を指定すると、 Node.jsドライバーは新しいホストを自動的に再スキャンします。配置により、クライアント構成を変更しなくても、トポロジーにホストを追加できます。
次のコードは、 SRV 接続形式を使用する接続文字列を示しています。
const uri = "mongodb+srv://<hostname>/"
SRV 接続形式の詳細については、 MongoDB Serverマニュアルの「 SRV 接続形式 」のエントリを参照してください。
API ドキュメント
Node.jsドライバーを使用して MongoClient
オブジェクトを作成する方法について詳しくは、MongoClient のAPIドキュメントを参照してください。