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

接続オプション

このガイドでは、接続、認証、ドライバーのオプションと、Lambda アプリケーションのデータベース接続構成でそれらを指定する方法を学習できます。 接続オプションは、データベース接続を管理する MongoDB PHP ライブラリに渡されます。

MongoDB PHP ライブラリの詳細については、 MongoDB PHP ライブラリのドキュメント を参照してください。

このガイドでは、次のトピックについて説明します。

次のセクションでは、構成ファイルに一般的な接続および認証オプションを追加する方法を学びます。

次のいずれかの方法を使用して、Lambda ウェブ アプリケーションのconfig/database.php構成ファイルで接続オプションまたは認証オプションを指定できます。

  • 設定と値を配列項目としてoptions配列項目に追加します。

  • dsn 配列項目で指定された接続stringに、設定と値をクエリstringパラメーターとして追加します。

options配列でオプションを指定するには、次の例に示すように、名前と値を配列アイテムとして追加します。

'connections' => [
'mongodb' => [
'dsn' => 'mongodb+srv://mongodb0.example.com/',
'driver' => 'mongodb',
'database' => 'sample_mflix',
'options' => [
'appName' => 'myLaravelApp',
'compressors' => 'zlib',
'zlibCompressionLevel' => 7,
],
],
],

接続stringのパラメーターとしてオプションを指定するには、次のクエリstring構文形式を使用します。

  • ホスト情報を パラメーターから区切るために、疑問符文字?を追加します。

  • オプションを追加するには、 <option>=<value>としてフォーマットします。

  • 各オプションと値のペアの間にアンパサンド文字&を挿入して、それらを区切ります。

次の設定例は、接続stringパラメーターの構文を示しています。

'dsn' => 'mongodb+srv://mongodb0.example.com/?appName=myLaravelApp&compressors=zlib',

次の表では、接続オプションと認証オプションの一覧とそのデフォルト値について説明しています。

オプション名
許容値
デフォルト値
説明

appName

文字列

なし

MongoDB PHPライブラリがハンドシェイクの一部としてMongoDBデプロイを送信するアプリケーション名を指定します。
appNameを指定すると、サーバーログでそのアプリケーションに関連するアクティビティを識別するのに役立ちます。

authMechanism

文字列

なし

使用する認証メカニズムを指定します。 このオプションを指定しない場合、ドライバーはデフォルトの認証メカニズムを使用します。 詳細については、サーバー マニュアルの 「認証」 を参照してください。

authMechanismProperties

文字列

なし

authMechanismオプションで設定された認証メカニズムに関連するプロパティをさらに指定します。

authSource

文字列

説明を参照してください


admin認証に使用されるデータベースを指定します。このオプションのデフォルトは、SCRAM$external ベースの認証メカニズムの場合はMONGODB-X509 $externalPLAIN メカニズムの場合は 、 メカニズムの場合はデータベース名または です。

compressors

文字列のコンマ区切りリスト

なし

MongoDB PHP ライブラリが使用するデータコンプレッサーを指定して、指定された順序で MongoDB とアプリケーション間で渡されるネットワーク データの量を削減します。

connectTimeoutMS

Non-negative integer

10000 (10 秒)

サーバーに接続するときに、基礎の各 TCP ストリームに渡される接続タイムアウトをミリ秒単位で指定します。

directConnection

ブール値

false

クラスター内のすべてのサーバーを検出して接続するのではなく、単一のホストに直接接続するかどうかを指定します。 この設定の詳細については、接続ガイドの「直接接続」を参照してください。

heartbeatFrequencyMS

以上の整数 500

10000 (10 秒)

各監視スレッドがサーバー チェックの実行間で待機する時間をミリ秒単位で指定します。

journal

ブール値

false

操作がディスク上のジャーナルに伝達されたことの確認を要求します。

localThresholdMS

Non-negative integer

15

ドライバーとサーバー間の平均往復時間が、すべての適切なサーバーの最短のラウンドトリップ時間と比較して、続く時間をミリ秒単位で指定します。
0の値はレイテンシウィンドウがないことを示すため、平均ラウンドトリップ時間が最も低いサーバーのみが対象となります。

maxStalenessSeconds

-1、または 以上の任意の整数 90

-1

指定された操作でセカンダリノードが考慮される、プライマリノードよりの最大遅延を秒単位で指定します。このオプションの値は少なくとも でなければなりません。そうでない場合、操作はエラーを発生させます。値が
90 -1の場合、最大遅延がないことを意味します。

readConcernLevel

文字列

なし

MongoDB PHP ライブラリによって実行される操作のデフォルトの読み取り保証 (read concern) を指定します。 詳細については、サーバー マニュアルの「読み取り保証」を参照してください。

readPreference

文字列

primary

MongoDB PHP ライブラリが読み取り操作をレプリカセット メンバーにルーティングする方法を指定します。 詳細については、サーバー マニュアルの「読み込み設定」を参照してください。

readPreferenceTags

キーと値のペアをコンマで区切ったリスト

なし

どのレプリカセット ノードを操作の対象にするかを指定します。 このキーの各インスタンスは、個別のタグ セットです。 ドライバーは、各タグを持つ 1 つ以上のサーバーを見つけるまで、各タグセットをチェックします。

replicaSet

文字列

なし

MongoDB PHP ライブラリが接続するレプリカセットの名前を指定します。

retryReads

ブール値

true

操作が失敗した場合に MongoDB PHP ライブラリが読み取り操作を再試行するかどうかを指定します。

serverSelectionTimeoutMS

Non-negative integer

30000 (30 秒)

MongoDB PHP ライブラリがタイムアウトする前に、操作のサーバーを選択するまでの待機時間をミリ秒単位で指定します。

tls

ブール値

false

MongoDB PHPライブラリがサーバーとの接続で使用する TLS 構成を指定します。デフォルトでは
、TLS はオフになっています。

tlsAllowInvalidCertificates

ブール値

false

サーバーが無効な証明書を提示した場合にMongoDB PHPライブラリがエラーを返すかどうかを指定します。アプリケーションにセキュリティ上の脆弱性が生じないよう、テスト環境でのみこのオプションを
trueに設定することをお勧めします。

tlsCAFile

文字列

説明を参照してください

MongoDB PHPライブラリが TLS に使用する認証局(CA)ファイルへのパスを指定します。このオプションを指定しない場合、ドライバーは
webpki-rootscrateの Mozilla ルート証明書を使用します。

tlsCertificateKeyFile

文字列

なし

MongoDB PHPライブラリが ID を確認するためにサーバーに提示する証明書ファイルへのパスを指定します。このオプションを設定しない場合、
MongoDB PHPライブラリはサーバーでその ID を確認しません。

tlsInsecure

ブール値

false

サーバーが無効な証明書を提示した場合にMongoDB PHPライブラリがエラーを返すかどうかを指定します。アプリケーションにセキュリティ上の脆弱性が生じないよう、テスト環境でのみこのオプションを
trueに設定することをお勧めします。

w

負でない整数または文字列

なし

特定の数または種類のサーバーに操作が反映されたことの確認応答を要求します。詳細については、サーバー
マニュアルの「 書込み保証 」を参照してください。

wTimeoutMS

Non-negative integer

タイムアウトなし

書込み保証 (write concern) の時間制限をミリ秒単位で指定します。 操作が時間制限内に要求されたレベルに伝播しなかった場合、MongoDB PHP ライブラリはエラーを発生させます。

zlibCompressionLevel

-1 以上9 以下の整数

-1

zlibコンプレッサーを使用する場合、 圧縮のレベルフィールドを指定します。
-1の値を設定すると、デフォルトの圧縮レベル(6 )が選択されます。
0の値を設定すると圧縮は行われず、9 の値を設定すると最大圧縮が指定されます。

接続オプションの完全なリストを表示するには、サーバー マニュアルの『 接続文字列 』ガイドの「接続stringオプション 」セクションを参照してください。 ページの右側にあるSelect your languageドロップダウン メニューからPHPを選択します。

ドライバー オプションは、Lambel アプリケーションと MongoDB 間の接続とすべての操作を管理する MongoDB PHP ライブラリの動作を変更します。

Lambda Web アプリケーションのconfig/database.php構成ファイルでドライバー オプションを指定できます。 ドライバー オプションを追加するには、次の例に示すように、設定と値を配列項目としてdriver_options配列項目に追加します。

'connections' => [
'mongodb' => [
'dsn' => 'mongodb+srv://mongodb0.example.com/',
'driver' => 'mongodb',
'database' => 'sample_mflix',
'driver_options' => [
'serverApi' => 1,
'allow_invalid_hostname' => false,
],
],
]

ドライバー オプションのリストについては、MongoDB PHP ライブラリのドキュメントの「 $DriverOptions: 配列セクション 」を参照してください。

Lambda MongoDB v5.0 以降、id はMongoDBドキュメントの _idフィールドのエイリアスであり、ライブラリはクエリとデータの保存時に最上位フィールドと埋め込みフィールドの両方で id_id に自動的に変換します。

Lambda MongoDB v5.3 以降を使用している場合は、埋め込みドキュメントの id から _id への自動変換を無効にできます。これを行うには、次のいずれかのアクションを実行します。

  1. config/database.phpファイルで、rename_embedded_id_field 設定を false に設定します。

    'connections' => [
    'mongodb' => [
    'dsn' => 'mongodb+srv://mongodb0.example.com/',
    'driver' => 'mongodb',
    'database' => 'sample_mflix',
    'rename_embedded_id_field' => false,
    // Other settings
    ],
    ],
  2. アプリケーション内の setRenameEmbeddedIdField() メソッドに false を渡します。

    DB::connection('mongodb')->setRenameEmbeddedIdField(false);

重要

このオプションは、既存のドキュメントスキーマとの下位互換性を確保するためにのみ使用することをお勧めします。新しいプロジェクトでは、Lambda のデフォルト動作を維持できるように、埋め込みドキュメントのフィールド名に id を使用しないようにします。