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

接続オプションの指定

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

以下のセクションでは、接続文字列または ClientOptions 構造体を使用して接続オプションを指定する方法について説明します。

ClientOptions 構造体を Connect() メソッドに渡すことで、接続文字列で接続オプションを指定できます。接続文字列では、文字列内に接続オプションを <name>=<value> ペアとして含めることができます。次の例では、接続文字列に、値が 60000 ミリ秒の connectTimeoutMS オプションと、値が truetls オプションが含まれています。

const uri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

また、接続オプションを ClientOptions 構造体にチェーンして接続設定を構成することもできます。この方法で接続を構成すると、実行時に設定を変更しやすくなり、コンパイル中にエラーを検出しやすくなり、接続文字列よりも多くの構成オプションが提供されます。

次のコード例では、Timeout オプションを 60 秒に設定し、空の tls.Config 構造体を SetTLSConfig() メソッドに渡すことで TLS を有効にします。

opts := options.Client().
SetConnectTimeout(60 * time.Second).
SetTLSConfig(&tls.Config{})
client, _ := mongo.Connect(opts)

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

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

データ型: bool

デフォルト値: false

例:

const uri = "mongodb://localhost:27017/?directConnection=true"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

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

データ型: string

デフォルト値: nil

例:

const uri = "mongodb://localhost:27017/?replicaSet=yourReplicaSet"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

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

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

データ型: bool

デフォルト値: false

例:

opts := options.Client().
SetDirect(true)
client, _ := mongo.Connect(opts)

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

データ型: string

デフォルト値: nil

例:

opts := options.Client().
SetReplicaSet("yourReplicaSet")
client, _ := mongo.Connect(opts)

サーバーへの接続に TLS を必要とするかどうかを指定します。"mongodb+srv" のスキームを使用するか、他の TLS オプションを指定する場合、このオプションはデフォルトで true になります。それ以外の場合、デフォルトは false になります。

データ型: bool

デフォルト値: nil

例:

const uri = "mongodb://localhost:27017/?tls=true"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

サーバーへの接続に TLS を必要とするかどうかを指定します。"mongodb+srv" のスキームを使用するか、他の TLS オプションを指定する場合、このオプションはデフォルトで true になります。それ以外の場合、デフォルトは false になります。

データ型: tls.Config

デフォルト値: false

例:

opts := options.Client().
SetTLSConfig(&tls.Config{})
client, _ := mongo.Connect(opts)

TLS オプションの詳細については、 接続での TLS の有効化 ガイドを参照してください。

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

データ型: 非負 int

デフォルト値: 30000 ミリ秒

例:

const uri = "mongodb://localhost:27017/?connectTimeoutMS=60000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

クライアントで実行される単一の操作がエラーを返すまでに実行できる時間。

データ型: 非負 int

デフォルト値: nil

例:

const uri = "mongodb://localhost:27017/?timeoutMS=30000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

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

データ型: time.Duration

デフォルト値: 30

例:

opts := options.Client().
SetConnectTimeout(60 * time.Second)
client, _ := mongo.Connect(opts)

クライアントで実行される単一の操作がエラーを返すまでに実行できる時間。

データ型: time.Duration

デフォルト値: nil

例:

opts := options.Client().
SetTimeout(30 * time.Second)
client, _ := mongo.Connect(opts)

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

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

デフォルト値: nil

例:

const uri = "mongodb://localhost:27017/?compressors=zlib,snappy"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

zlib で使用する圧縮レベル。zlibApplyURI または SetCompressors を介して圧縮ツールとして指定されていない場合、このオプションは無視されます。このオプションは、-1 から 9 までの整数値を受け入れます。

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

  • 0: 圧縮なし。

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

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

データ型: int

デフォルト値: -1

例:

const uri = "mongodb://localhost:27017/?compressors=zlib&zlibCompressionLevel=6"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

zstd で使用する圧縮レベル。zstdApplyURI または SetCompressors を介して圧縮ツールとして指定されていない場合、このオプションは無視されます。このオプションは 1 から 20 までの整数値を受け入れます。

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

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

データ型: int

デフォルト値: 6

例:

const uri = "mongodb://localhost:27017/?compressors=zstd&zstdCompressionLevel=6"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

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

データ型: []string

デフォルト値: nil

例:

opts := options.Client().
SetCompressors([]string{"zlib", "snappy"})
client, _ := mongo.Connect(opts)

zlib で使用する圧縮レベル。zlibApplyURI または SetCompressors を介して圧縮ツールとして指定されていない場合、このオプションは無視されます。このオプションは、-1 から 9 までの整数値を受け入れます。

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

  • 0 :圧縮なし。

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

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

データ型: int

デフォルト値: -1

例:

opts := options.Client().
SetCompressors([]string{"zlib"}).
SetZlibLevel(6)
client, _ := mongo.Connect(opts)

zstd で使用する圧縮レベル。zstdApplyURI または SetCompressors を介して圧縮ツールとして指定されていない場合、このオプションは無視されます。このオプションは 1 から 20 までの整数値を受け入れます。

データ型: int

デフォルト値: 6

例:

opts := options.Client().
SetCompressors([]string{"zstd"}).
SetZstdLevel(8)
client, _ := mongo.Connect(opts)

圧縮の詳細については、 「ネットワーク トラフィックの圧縮」ガイドを参照してください。

ドライバーが接続プール内で作成できるクライアントまたは接続の最大数。このカウント数には、使用中の接続が含まれます。

データ型: 非負 int

デフォルト値: 100

例:

const uri = "mongodb://localhost:27017/?maxPoolSize=150"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

操作が行われていない場合でも、ドライバーが接続プールに作成して維持する接続の数。このカウント数には、使用中の接続が含まれます。

データ型: 非負 int

デフォルト値: 0

例:

const uri = "mongodb://localhost:27017/?minPoolSize=3"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

ドライバーが接続を閉じる前に接続がアイドル状態になる時間の長さ。

データ型: 非負 int

デフォルト値: 0

例:

const uri = "mongodb://localhost:27017/?maxIdleTimeMS=8000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

接続プールが同時に確立できる接続の最大数。

データ型: 非負 int

デフォルト値: 2

例:

const uri = "mongodb://localhost:27017/?maxConnecting=3"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

ドライバーが接続プール内で作成できるクライアントまたは接続の最大数。このカウント数には、使用中の接続が含まれます。

データ型: 非負 uint64

デフォルト値: 100

例:

opts := options.Client().
SetMaxPoolSize(150)
client, _ := mongo.Connect(opts)

操作が行われていない場合でも、ドライバーが接続プールに作成して維持する接続の数。このカウント数には、使用中の接続が含まれます。

データ型: 非負 uint64

デフォルト値: 0

例:

opts := options.Client().
SetMinPoolSize(3)
client, _ := mongo.Connect(opts)

ドライバーが接続を閉じる前に接続がアイドル状態になる時間の長さ。

データ型: time.Duration

デフォルト値: 0

例:

opts := options.Client().
SetMaxConnIdleTime(8 * time.Second)
client, _ := mongo.Connect(opts)

接続プールが同時に確立できる接続の最大数。

データ型: 非負 uint64

デフォルト値: 2

例:

opts := options.Client().
SetMaxConnecting(3)
client, _ := mongo.Connect(opts)

接続プールの詳細については、接続プールガイドを参照してください。

書込み保証 (write concern)の w コンポーネント。指定された数のMongoDBインスタンスに書込み (write)操作が反映されたことの確認応答を要求します。デフォルト値は、アービタと投票ノードの数に応じて "majority" または 1 です。w オプションの詳細については、 MongoDB Serverマニュアルの書込み保証を参照してください。

データ型: int or string

デフォルト値: 1 or "majority"

例:

const uri = "mongodb://localhost:27017/?w=2"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

書込み保証 (write concern)の w コンポーネント。指定された数のMongoDBインスタンスに書込み (write)操作が反映されたことの確認応答を要求します。デフォルト値は、アービタと投票ノードの数に応じて "majority" または 1 です。w オプションの詳細については、 MongoDB Serverマニュアルの書込み保証を参照してください。

データ型: writeconcern.WriteConcern

デフォルト値: 1 or "majority"

例:

wc := &writeconcern.WriteConcern{
W: 2,
}
opts := options.Client().SetWriteConcern(wc)
client, _ := mongo.Connect(opts)

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

データ型: string

デフォルト値: local

例:

const uri = "mongodb://localhost:27017/?readConcernLevel=majority"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

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

データ型: readconcern.ReadConcern

デフォルト値: nil

例:

opts := options.Client().
SetReadConcern(readconcern.Majority())
client, _ := mongo.Connect(opts)

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

データ型: string

デフォルト値: primary

例:

const uri = "mongodb://localhost:27017/?readPreference=primaryPreferred"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

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

データ型: readpref.ReadPref

デフォルト値: readpref.Primary()

例:

opts := options.Client().
SetReadPreference(readpref.PrimaryPreferred())
client, _ := mongo.Connect(opts)

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

利用可能な認証メカニズムの詳細については、認証メカニズムガイドを参照してください。

データ型: string

デフォルト値: 空(認証なし)、または認証が有効になった後の SCRAM-SHA-256

例:

const uri = "mongodb://user:password@localhost:27017/?authMechanism=PLAIN&authSource=admin"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

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

利用可能な認証メカニズムの詳細については、認証メカニズムガイドを参照してください。

データ型: Credential

デフォルト値: 空(認証なし)、または認証が有効になった後の SCRAM-SHA-256

例:

credential := options.Credential{
AuthMechanism: "PLAIN",
AuthSource: "admin",
Username: "user",
Password: "password",
}
opts := options.Client().SetAuth(credential)
client, _ := mongo.Connect(opts)

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

データ型: 非負 int

デフォルト値: 30000 ミリ秒

例:

const uri = "mongodb://localhost:27017/?serverSelectionTimeoutMS=40000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

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

データ型: 非負 int

デフォルト値: 15 ミリ秒

例:

const uri = "mongodb://localhost:27017/?localThresholdMS=20000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

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

データ型: time.Duration

デフォルト値: 30

例:

opts := options.Client().
SetServerSelectionTimeout(40 * time.Second)
client, _ := mongo.Connect(opts)

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

データ型: time.Duration

デフォルト値: 15 ミリ秒

例:

opts := options.Client().
SetLocalThreshold(20 * time.Millisecond)
client, _ := mongo.Connect(opts)

再試行可能な読み取りを有効にします。

データ型: bool

デフォルト値: true

例:

const uri = "mongodb://localhost:27017/?retryReads=false"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

再試行可能な書き込みを有効にします。

データ型: bool

デフォルト値: true

例:

const uri = "mongodb://localhost:27017/?retryWrites=false"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

ドライバーがサーバ側の過負荷エラーで失敗した操作を再試行する最大回数。

データ型: 非負 int

デフォルト値: 2

例:

const uri = "mongodb://localhost:27017/?maxAdaptiveRetries=3"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

再試行可能な読み取りを有効にします。

データ型: bool

デフォルト値: true

例:

opts := options.Client().
SetRetryReads(false)
client, _ := mongo.Connect(opts)

再試行可能な書き込みを有効にします。

データ型: bool

デフォルト値: true

例:

opts := options.Client().
SetRetryWrites(false)
client, _ := mongo.Connect(opts)

ドライバーがサーバ側の過負荷エラーで失敗した操作を再試行する最大回数。

データ型: 非負 uint

デフォルト値: 2

例:

const uri = "mongodb://localhost:27017/?maxAdaptiveRetries=3"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

接続ハンドシェイクの一環として、ドライバーがクライアント メタデータでサーバーに渡すアプリ名。接続が確立されると、サーバーはこの値を MongoDB ログに出力します。この値は、ログ ファイル、スロークエリ ログ、プロファイル コレクションにも記録されます。

データ型: string

デフォルト値: nil

例:

const uri = "mongodb://localhost:27017/?appName=yourAppName"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

ドライバーが ロードバランサーに接続しているかどうかを指定します。このプロパティは、次の条件が すべて 満たされている場合にのみ、 true に設定できます。

  • ホスト名を 1 つだけ指定

  • レプリカセットに接続していません。

  • SrvMaxHostsプロパティを使用していません

  • DirectConnectionプロパティを使用していません

データ型: bool

デフォルト値: false

例:

const uri = "mongodb://localhost:27017/?loadBalanced=true"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

シードリストを初期設定するとき、または SRV ポーリング中にトポロジーに新しいホストを追加するときにランダムに選択する SRV 結果の最大数。

このプロパティは、接続文字列スキームが ConnectionStringScheme.MongoDBPlusSrv に設定されている場合にのみ使用できます。レプリカセットに接続する場合は、 を使用できません。

データ型: 非負 int

デフォルト値: 0

例:

opts := options.Client().
SetSRVMaxHosts(5)
client, _ := mongo.Connect(opts)

ドライバーがシードリストを構築するために取得するSRVリソースレコードのサービス名。ドライバーは、サービス名を使用して、次の形式に一致する SRV URI を作成します。

_{srvServiceName}._tcp.{hostname}.{domainname}

このプロパティは、検出およびポーリングの SRV lookup のデフォルトのサービス名を上書きします。デフォルト値は "mongodb" です。

このプロパティは、接続文字列スキームが ConnectionStringScheme.MongoDBPlusSrv に設定されている場合にのみ使用できます。レプリカセットに接続する場合は、 を使用できません。

データ型: string

デフォルト値: mongodb

例:

const uri = "mongodb+srv://localhost/?srvServiceName=yourServiceName"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

接続ハンドシェイクの一環として、ドライバーがクライアント メタデータでサーバーに渡すアプリ名。接続が確立されると、サーバーはこの値を MongoDB ログに出力します。この値は、ログ ファイル、スロークエリ ログ、プロファイル コレクションにも記録されます。

データ型: string

デフォルト値: nil

例:

opts := options.Client().
SetAppName("yourAppName")
client, _ := mongo.Connect(opts)

ドライバーが ロードバランサーに接続しているかどうかを指定します。このプロパティは、次の条件が すべて 満たされている場合にのみ、 true に設定できます。

  • ホスト名を 1 つだけ指定

  • レプリカセットに接続していません。

  • SrvMaxHostsプロパティを使用していません

  • DirectConnectionプロパティを使用していません

データ型: bool

デフォルト値: false

例:

opts := options.Client().
SetLoadBalanced(true)
client, _ := mongo.Connect(opts)

コマンドの実行時にサーバーに送信される API バージョンを構成します。サーバー API の詳細については、「Stable API」ガイドを参照してください。

データ型: ServerAPIOptions

デフォルト値: nil

例:

opts := options.Client().
SetServerAPIOptions(options.ServerAPI(options.ServerAPIVersion1))
client, _ := mongo.Connect(opts)

シードリストを初期設定するとき、または SRV ポーリング中にトポロジーに新しいホストを追加するときにランダムに選択する SRV 結果の最大数。

このプロパティは、接続文字列スキームが ConnectionStringScheme.MongoDBPlusSrv に設定されている場合にのみ使用できます。レプリカセットに接続する場合は、 を使用できません。

データ型: 非負 int

デフォルト値: 0

例:

opts := options.Client().
SetSRVMaxHosts(5)
client, _ := mongo.Connect(opts)

ドライバーがシードリストを構築するために取得するSRVリソースレコードのサービス名。ドライバーは、サービス名を使用して、次の形式に一致する SRV URI を作成します。

_{srvServiceName}._tcp.{hostname}.{domainname}

このプロパティは、検出およびポーリングの SRV lookup のデフォルトのサービス名を上書きします。デフォルト値は "mongodb" です。

このプロパティは、接続文字列スキームが ConnectionStringScheme.MongoDBPlusSrv に設定されている場合にのみ使用できます。レプリカセットに接続する場合は、 を使用できません。

データ型: string

デフォルト値: mongodb

例:

opts := options.Client().
SetSRVServiceName("yourServiceName")
client, _ := mongo.Connect(opts)

接続文字列で指定できるオプションの詳細については、 MongoDB Serverマニュアルの「 接続文字列オプション 」を参照してください。

このページで使用されているタイプの詳細については、次のAPIドキュメントを参照してください。