Docs Menu
Docs Home
/ / /
Node.js ドライバー
/

接続ターゲットの選択

このガイドでは、接続string とMongoClient {0 オブジェクトを使用して、さまざまなタイプのMongoDB 配置に接続する方法を説明します。

Tip

接続文字列を取得する方法の詳細については、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 SRVレコードを検索するには、接続文字列で SRV 接続形式を指定します。 この形式を指定すると、 Node.jsドライバーは新しいホストを自動的に再スキャンします。配置により、クライアント構成を変更しなくても、トポロジーにホストを追加できます。

次のコードは、 SRV 接続形式を使用する接続文字列を示しています。

const uri = "mongodb+srv://<hostname>/"

SRV 接続形式の詳細については、 MongoDB Serverマニュアルの「 SRV 接続形式 」のエントリを参照してください。

Node.jsドライバーを使用して MongoClientオブジェクトを作成する方法について詳しくは、MongoClient のAPIドキュメントを参照してください。

戻る

接続プール

次へ

Amazon Web Services Lambdaとの接続

項目一覧