MongoDB接続文字列のフォーマット
mongodb:// URI形式を使ったMongoDB接続文字列の構築方法。認証、authSource、レプリカセット、一般的なクエリパラメータを解説します。
MongoDB
詳細な説明
MongoDB URIフォーマット
MongoDBはmongodb:// URIスキーム(またはSRVベース接続の場合はmongodb+srv://)を使用します。フォーマットは以下の通りです:
mongodb://[user[:password]@]host[:port][/database][?options]
認証パラメータ
MongoDB認証には3つの重要な要素が必要です:
- ユーザー名とパスワード(URI authority部分)
- authSource — 認証情報を検証するデータベース(デフォルトは
admin) - 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ドライバーを使用)から、セルフホストのレプリカセットまたはローカルの単一ノード開発インスタンスへの接続。