MongoDB接続文字列のフォーマット

mongodb:// URI形式を使ったMongoDB接続文字列の構築方法。認証、authSource、レプリカセット、一般的なクエリパラメータを解説します。

MongoDB

詳細な説明

MongoDB URIフォーマット

MongoDBはmongodb:// URIスキーム(またはSRVベース接続の場合はmongodb+srv://)を使用します。フォーマットは以下の通りです:

mongodb://[user[:password]@]host[:port][/database][?options]

認証パラメータ

MongoDB認証には3つの重要な要素が必要です:

  1. ユーザー名とパスワード(URI authority部分)
  2. authSource — 認証情報を検証するデータベース(デフォルトはadmin
  3. authMechanism — 認証方法(デフォルトはSCRAM-SHA-256

明示的なauthSourceを使った例:

mongodb://appuser:p4ssw0rd@localhost:27017/myapp?authSource=admin

レプリカセット接続

レプリカセットクラスターの場合、すべてのメンバーをカンマで区切って列挙します:

mongodb://host1:27017,host2:27017,host3:27017/mydb?replicaSet=rs0

ドライバーは到達可能なメンバーから完全なトポロジーを発見しますが、複数のノードを列挙することで1つがダウンしても接続を確保できます。

一般的なオプション

パラメータ 目的
authSource 認証データベース admin
replicaSet レプリカセット名 rs0
retryWrites 書き込みの自動リトライ true
w 書き込み保証 majority
readPreference 読み取りルーティング secondaryPreferred
maxPoolSize 最大接続数 50
tls TLSの有効化 true

本番環境の完全な例

mongodb://appuser:str0ngP%40ss@mongo1.example.com:27017,mongo2.example.com:27017/production?authSource=admin&replicaSet=rs0&retryWrites=true&w=majority&tls=true

この文字列は、adminデータベースに対する認証、書き込みの自動リトライ、マジョリティ書き込み保証、TLS暗号化を持つ2メンバーのレプリカセットに接続します。

ユースケース

Node.jsアプリケーション(MongooseまたはネイティブMongoDBドライバーを使用)から、セルフホストのレプリカセットまたはローカルの単一ノード開発インスタンスへの接続。

試してみる — Connection String Builder

フルツールを開く