AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

接続オプションの指定

このページでは、Scala ドライバーで使用できる MongoDB 接続および認証オプションと、MongoDB 接続においてそれらを指定する方法について説明します。

MongoClient() コンストラクターに接続 URI を渡す場合は、接続オプションを <name>=<value> ペアとして文字列に含めることができます。次の例では、接続 URI に、値が 60000connectTimeoutMS オプションと、値が truetls オプションが含まれています。

val uri = "mongodb://localhost:27017/?connectTimeoutMS=60000&tls=true"
val mongoClient = MongoClient(uri)

MongoClientSettings.Builderクラスのメソッドを使用してMongoClientSettingsインスタンスで接続オプションを設定し、設定オブジェクトをMongoClient()コンストラクタに渡します。

このように接続を構成すると、実行時に設定を変更しやすくなり、コンパイル時にエラーを検出しやすくなります。

次の例は、 MongoClientSettingsインスタンスの作成時に接続ターゲットを指定する方法と、その他のオプションを設定する方法を示しています。

val settings = MongoClientSettings.builder()
.applyToClusterSettings(builder =>
builder.hosts(List(new ServerAddress("localhost", 27017)).asJava))
.applyToSocketSettings(builder =>
builder.connectTimeout(60000, TimeUnit.MILLISECONDS))
.applyToSslSettings(builder => builder.enabled(true))
.build()
val mongoClient = MongoClient(settings)

ホスト名とポートを指定する代わりに接続stringを指定する場合は、applyConnectionString() メソッドを使用し、次のコードに示すようにビルダー メソッドを使用して他のオプションを設定します。

val uri = "mongodb://localhost:27017/"
val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString(uri))
.applyToSocketSettings(builder =>
builder.connectTimeout(60000, TimeUnit.MILLISECONDS))
.applyToSslSettings(builder => builder.enabled(true))
.build()
val mongoClient = MongoClient(settings)

サーバーとの間で送受信されるワイヤ プロトコル メッセージの圧縮には、次の順でこれらのタイプが推奨されます。ビルド時の任意の依存関係として、"snappy" 、"zlib" 、"zstd" を有効にできます。ドライバーは、サーバーがサポートするこれらの圧縮タイプの最初のものを使用します。

データ型: カンマ区切りの string

デフォルト値: null

例:

val uri = "mongodb://localhost:27017/?compressors=snappy,zstd,zlib"
val mongoClient = MongoClient(uri)

zlib で使用する圧縮レベル。このオプションは、-1 から 9 までの整数値を受け入れます。

  • - 1 :(デフォルト)。 zlib はデフォルトの圧縮レベル(通常は6 )を使用します。

  • 0 :圧縮なし。

  • 1 :速度は最も速く、圧縮は最小です。

  • 9 :圧縮に最適ですが、速度は最も遅くなります。

データ型: integer

デフォルト値: -1

例:

val uri = "mongodb://localhost:27017/?compressors=zlib&zlibCompressionLevel=3"
val mongoClient = MongoClient(uri)

サーバーとの間で送受信されるワイヤ プロトコル メッセージの圧縮には、次の順でこれらのタイプが推奨されます。ビルド時の任意の依存関係として、"snappy" 、"zlib" 、"zstd" を有効にできます。ドライバーは、サーバーがサポートするこれらの圧縮タイプの最初のものを使用します。

データ型: List[MongoCompressor]

デフォルト値: 空のリスト

例:

val settings = MongoClientSettings.builder()
.compressorList(List(
MongoCompressor.createSnappyCompressor(),
MongoCompressor.createZstdCompressor(),
MongoCompressor.createZlibCompressor()
).asJava)
.build()
val mongoClient = MongoClient(settings)

zlib で使用する圧縮レベル。このオプションは、-1 から 9 までの整数値を受け入れます。

  • - 1 :(デフォルト)。 zlib はデフォルトの圧縮レベル(通常は6 )を使用します。

  • 0 :圧縮なし。

  • 1 :速度は最も速く、圧縮は最小です。

  • 9 :圧縮に最適ですが、速度は最も遅くなります。

データ型: integer

デフォルト値: -1

例:

val settings = MongoClientSettings.builder()
.compressorList(List(
MongoCompressor.createZlibCompressor()
.withProperty(MongoCompressor.LEVEL, 3)
).asJava)
.build()
val mongoClient = MongoClient(settings)

タイムアウトする前にドライバーがサーバーへの単一の TCP ソケット接続を確立しようとする時間の長さ。

データ型: integer

デフォルト値: 10000

例:

val uri = "mongodb://localhost:27017/?connectTimeoutMS=10000"
val mongoClient = MongoClient(uri)

このオプションは非推奨です。このタイムアウトは、代わりにクライアントレベルのタイムアウトを設定することで構成できます。

ドライバーがタイムアウトする前にソケット上で送信または受信を試みる時間の長さ。デフォルト値はオペレーティング システムによって設定されます。

データ型: integer

デフォルト値: タイムアウトなし

例:

val uri = "mongodb://localhost:27017/?socketTimeoutMS=5000"
val mongoClient = MongoClient(uri)

タイムアウトする前にドライバーがサーバーへの単一の TCP ソケット接続を確立しようとする時間の長さ。

データ型: integer

デフォルト値: 10000

例:

val settings = MongoClientSettings.builder()
.applyToSocketSettings(builder =>
builder.connectTimeout(10, TimeUnit.SECONDS))
.build()
val mongoClient = MongoClient(settings)

このオプションは非推奨です。このタイムアウトは、代わりにクライアントレベルのタイムアウトを設定することで構成できます。

ドライバーがタイムアウトする前にソケット上で送信または受信を試みる時間の長さ。デフォルト値はオペレーティング システムによって設定されます。

データ型: integer

デフォルト値: タイムアウトなし

例:

val settings = MongoClientSettings.builder()
.applyToSocketSettings(builder =>
builder.readTimeout(5, TimeUnit.SECONDS))
.build()
val mongoClient = MongoClient(settings)

ドライバーがタイムアウトする前にサーバーを選択しようとする時間の長さ。

データ型: integer

デフォルト値: 30000

例:

val uri = "mongodb://localhost:27017/?serverSelectionTimeoutMS=30000"
val mongoClient = MongoClient(uri)

ドライバーがタイムアウトする前にサーバーを選択しようとする時間の長さ。

データ型: integer

デフォルト値: 30000

例:

val settings = MongoClientSettings.builder()
.applyToClusterSettings(builder =>
builder.serverSelectionTimeout(30, TimeUnit.SECONDS))
.build()
val mongoClient = MongoClient(settings)

Tip

認証オプションの詳細については、認証メカニズムセクションを参照してください。

ドライバーがMongoDB Serverに対して認証するために使用するメカニズム。認証メカニズムを指定しない場合、ドライバーはサーバーのバージョンに応じてSCRAM-SHA-1またはSCRAM-SHA-256のいずれかを使用します。

データ型: string

デフォルト値: "SCRAM-SHA-256" MongoDB v4.0 以降に接続する場合

例:

val uri = "mongodb://<username>:<password>@localhost:27017/?authMechanism=SCRAM-SHA-256"
val mongoClient = MongoClient(uri)

認証メカニズム固有のオプション。すべての認証メカニズムに必要なわけではありません。

データ型: string

例:

val uri = "mongodb://localhost:27017/?authMechanismProperties=AWS_SESSION_TOKEN:12435"
val mongoClient = MongoClient(uri)

認証するデータベース。

データ型: string

デフォルト値: "admin"

例:

val uri = "mongodb://<username>:<password>@localhost:27017/?authSource=admin"
val mongoClient = MongoClient(uri)

認証するユーザー名。このオプションが接続 URI に含まれる場合、パーセントエンコードする必要があります。

データ型: string

例:

val uri = "mongodb://myUser:<password>@localhost:27017/"
val mongoClient = MongoClient(uri)

認証用のパスワード。このオプションが接続 URI に含まれている場合は、パーセントエンコードする必要があります。

データ型: string

例:

val uri = "mongodb://<username>:myPassword@localhost:27017/"
val mongoClient = MongoClient(uri)

ドライバーがMongoDB Serverに対して認証するために使用するメカニズム。認証メカニズムを指定しない場合、ドライバーはサーバーのバージョンに応じてSCRAM-SHA-1またはSCRAM-SHA-256のいずれかを使用します。

データ型: string

デフォルト値: "SCRAM-SHA-256" MongoDB v4.0 以降に接続する場合

例:

val settings = MongoClientSettings.builder()
.credential(MongoCredential.createScramSha256Credential(
"<username>", "<authSource>", "<password>".toCharArray))
.build()
val mongoClient = MongoClient(settings)

注意

MongoClientSettings でユーザー名、パスワード、認証ソース、およびメカニズム固有のプロパティを構成するには、適切な MongoCredential ファクトリメソッドを使用します。詳細については、認証メカニズムのガイドを参照してください。

接続するレプリカセットの名前。

データ型: string

例:

val uri = "mongodb://localhost:27017/?replicaSet=myRS"
val mongoClient = MongoClient(uri)

すべての操作をホストに強制的にディスパッチするかどうかを指定します。このオプションを指定すると、ドライバーは SRV 接続形式を受け入れません。代わりに標準の接続 URI 形式を使用する必要があります。SRV 接続と標準接続形式の詳細については、MongoDB Server マニュアルの接続文字列ガイドを参照してください。

複数のホスト名を指定する場合、このプロパティを false に設定する必要があります。

データ型: boolean

デフォルト値: false

例:

val uri = "mongodb://localhost:27017/?directConnection=true"
val mongoClient = MongoClient(uri)

クライアントのデフォルトの読み込み設定 (read preference)。詳細については、MongoDB Server マニュアルの「読み込み設定 (read preference)」を参照してください。

データ型: string

デフォルト値: primary

例:

val uri = "mongodb://localhost:27017/?readPreference=primary"
val mongoClient = MongoClient(uri)

クライアントの読み取り保証 (read concern)。詳細については、MongoDB Server マニュアルの「読み取り保証 (read concern)」を参照してください。

データ型: string

例:

val uri = "mongodb://localhost:27017/?readConcern=majority"
val mongoClient = MongoClient(uri)

クライアントの書込み保証 (write concern)。詳細については、MongoDB Server マニュアルの「書込み保証 (write concern)」を参照してください。

データ型: string

例:

val uri = "mongodb://localhost:27017/?writeConcern=majority"
val mongoClient = MongoClient(uri)

サーバーの選択対象となるレイテンシウィンドウ。サーバーの往復時間が、最速のサーバーの往復時間とこの値を合わせた値より長い場合、そのサーバーは選択対象になりません。

データ型: integer

デフォルト値: 15

例:

val uri = "mongodb://localhost:27017/?localThresholdMS=35"
val mongoClient = MongoClient(uri)

接続するレプリカセットの名前。

データ型: string

例:

val settings = MongoClientSettings.builder()
.applyToClusterSettings(builder =>
builder.requiredReplicaSetName("myRS"))
.build()
val mongoClient = MongoClient(settings)

すべての操作をホストに強制的にディスパッチするかどうかを指定します。このオプションを指定すると、ドライバーは SRV 接続形式を受け入れません。代わりに標準の接続 URI 形式を使用する必要があります。SRV 接続と標準接続形式の詳細については、MongoDB Server マニュアルの接続文字列ガイドを参照してください。

複数のホスト名を指定する場合、このプロパティを false に設定する必要があります。

データ型: boolean

デフォルト値: false

例:

val settings = MongoClientSettings.builder()
.applyToClusterSettings(builder =>
builder.mode(ClusterConnectionMode.SINGLE))
.build()
val mongoClient = MongoClient(settings)

クライアントのデフォルトの読み込み設定 (read preference)。詳細については、MongoDB Server マニュアルの「読み込み設定 (read preference)」を参照してください。

データ型: string

デフォルト値: primary

例:

val settings = MongoClientSettings.builder()
.readPreference(ReadPreference.primary())
.build()
val mongoClient = MongoClient(settings)

クライアントの読み取り保証 (read concern)。詳細については、MongoDB Server マニュアルの「読み取り保証 (read concern)」を参照してください。

データ型: string

例:

val settings = MongoClientSettings.builder()
.readConcern(ReadConcern.MAJORITY)
.build()
val mongoClient = MongoClient(settings)

クライアントの書込み保証 (write concern)。詳細については、MongoDB Server マニュアルの「書込み保証 (write concern)」を参照してください。

データ型: string

例:

val settings = MongoClientSettings.builder()
.writeConcern(WriteConcern.MAJORITY)
.build()
val mongoClient = MongoClient(settings)

サーバーの選択対象となるレイテンシウィンドウ。サーバーの往復時間が、最速のサーバーの往復時間とこの値を合わせた値より長い場合、そのサーバーは選択対象になりません。

データ型: integer

デフォルト値: 15

例:

val settings = MongoClientSettings.builder()
.applyToClusterSettings(builder =>
builder.localThreshold(35, TimeUnit.MILLISECONDS))
.build()
val mongoClient = MongoClient(settings)

接続オプションの完全なリストを表示するには、MongoDB Server マニュアルの「接続文字列オプション」を参照してください。

このガイドで言及されているクラスとメソッドについて詳しくは、次の API ドキュメントを参照してください。