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

接続ガイド

このガイドでは、Lambda MongoDB を使用して、Lambel アプリケーションを MongoDB インスタンスまたはレプリカセットの配置に接続する方法を学習できます。

このガイドには、次のセクションが含まれています。

接続 URI ( 接続stringとも呼ばれます)は、Lambda 統合がMongoDBに接続する方法と、接続中の動作を指定します。

接続文字列には、次のコンポーネントが含まれます。

コンポーネント
説明

mongodb:// or mongodb+srv://

Required. A prefix that identifies the URI as a string in the standard connection format (mongodb://) or in the SRV connection format (mongodb+srv://).

For more information, see Connection String Formats.

username:password

任意。認証用のデータベースユーザー名とパスワードを <username>:<password>形式で指定します。

配置で認証 が必要ない場合は、このセクションを省略します。

host[:port]

必須。 MongoDB が実行されているホストとオプションのポート番号。 ポート番号を指定しない場合、ドライバーはデフォルトのポート27017を使用します。

Note that specifying the port number is only supported when using the standard connection format. If you are using the SRV connection format, omit the port number.

/defaultauthdb

任意。 接続stringに username:password@ 認証情報が含まれている一方で、authSource オプションが含まれていない場合に使用する認証データベース。 このコンポーネントを含めない場合、クライアントはadminデータベースに対してユーザーを認証します。

Can also be the application database if and only if the database option is not specified in the database configuration array.

?<options>

任意。接続固有のオプションを <name>=<value> ペアとして指定するクエリ文字列。これらのオプションの説明については、接続オプションガイドを参照してください。

次の例では、プロトコル、認証情報、ホスト名とポート、および接続オプションを指定する完全な接続 URI を示しています。

mongodb://myUser:myPass123@localhost:27017/?w=majority&retryWrites=true

For more information on connection strings, see Connection Strings in the Server manual manual.

Lambda 統合を使用すると、 config/database.php Lambda アプリケーション ファイルで MongoDB database 接続を構成できます。 このファイルでは、次の接続の詳細を指定できます。

  • defaultは、指定されていない場合に使用するデータベース接続を指定します。

  • connectionsは、アプリケーションから 1 つ以上のデータベースにアクセスするためのデータベース接続情報を含みます。

構成ファイルで次のコードを使用して、 connections配列内の対応するmongodbエントリへのデフォルト接続を設定できます。

'default' => 'mongodb',

MongoDB データベース接続の場合、次の詳細を指定できます。

設定
説明

driver

接続に使用するデータベースドライバーを指定します。

dsn

MongoDB 接続 URI を指定するデータソース名(DSN)。

host

配置における 1 つ以上の MongoDB ノードのネットワークアドレスとポートを指定します。この設定は、dsn 設定の代わりに使用できます。
単一のホストを指定するには、次の例に示すように、ホスト名とポートを string として渡します。

'host' => 'myhost.example.com:27017',

複数のホストを指定するには、次の例に示すように、それらを配列で渡します。

'host' => ['node1.example.com:27017', 'node2.example.com:27017', 'node3.example.com:27017'],

注意

このオプションは、DNS シードリスト接続形式を使用するホストを受け入れません。

database

読み取りおよび書込み先の MongoDB database の名前を指定します。

username

MongoDB で認証するためのデータベースユーザーのユーザー名認証情報を指定します。

password

MongoDB で認証するためのデータベースユーザーのパスワード認証情報を指定します。

options

接続動作を決定する MongoDB に渡す接続オプションを指定します。 接続オプションの詳細については、「接続オプションと認証オプション 」を参照してください。

driver_options

その接続のドライバーの動作を決定する MongoDB PHP ライブラリに渡す固有のオプションを指定します。 ドライバー オプションの詳細については、「ドライバー接続オプション 」を参照してください。

注意

dsn 構成では、配列項目としてではなく、 MongoDB接続stringのパラメーターとして指定できます。

  • host

  • username

  • password

  • options とdriver_optionsは、オプション名で指定されます

重要

Lambda 統合は、prefix と prefix_indexes の接続設定をサポートしていません。

次の例は、 connections配列項目で MongoDB 接続の詳細を指定する方法を示しています。

config/database.config MongoDB 接続構成の例
'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => 'mongodb+srv//myUser:myPass123@sample.host/',
'database' => 'sample_mflix',
'options' => [
'w' => 'majority',
],
'driver_options' => [
'serverApi' => 1,
],
],
// ...
],

次のセクションでは、MongoDB 接続を指定する一般的な方法について説明します。

このセクションでは、 MongoDB Atlas接続stringを使用して Lambda アプリケーションの DSN を構成する方法を示します。

MongoDB DSN を Lambda アプリケーションに追加するには、次の変更を行います。

  • プロジェクトの.env環境構成ファイルに、環境変数として DSN を追加します。 変数の値をAtlas接続stringに設定します。

  • config/database.php構成ファイルのconnections配列に MongoDB 接続用の接続エントリを追加します。 接続エントリのdsn値を設定して、DSN を含む環境変数を参照します。

次の例えは、関連する構成ファイルで接続stringとして "mongodb+srv://myUser:myPass123@mongodb0.example.com/" を指定する方法を示しています。

サンプル .env 環境構成
DB_URI="mongodb+srv://myUser:myPass123@mongodb0.example.com/"
サンプル config/database.html 接続エントリ
'connections' => [
'mongodb' => [
'dsn' => env('DB_URI'), // uses the value of the DB_URI environment variable
'driver' => 'mongodb',
'database' => 'sample_mflix',
// ...
],
// ...
]

Tip

Atlas接続stringを取得するには、クイック スタート チュートリアルの「接続stringの作成」の手順に従います。

次のセクションでは、単一の MongoDB サーバー インスタンスまたは MongoDB Atlas でホストされていないレプリカセットに接続する方法を示します。

このセクションでは、ローカル開発環境などの同じマシンからstring Lambda アプリケーションとMongoDB サーバーを実行する場合に使用できる接続 の例を示します。

アプリケーションを同じマシンでホストされている MongoDB インスタンスに接続するには、次のタスクを実行する必要があります。

  • MongoDB サーバーをダウンロード、インストール、実行します。

  • MongoDB サーバーが実行されている IP アドレスとポートを取得します。 MongoDB サーバーのローカル インストールのデフォルト設定を使用する場合、IP アドレスは127.0.0.1で、ポートは27017です。

  • 接続例セクションに示されているように、 dsnの値について環境変数DB_URIを参照するようにconfig/database.php接続を設定します。

次の例は、アプリケーションがデフォルトのstring .envMongoDBIPアドレスとポートで実行されている サーバーに接続する場合に、 ファイルに追加できるサンプル接続 を示しています。

サンプル .env ローカル MongoDB サーバーに接続するための環境構成。
DB_URI="mongodb://127.0.0.1:27017/";

To learn how to download and install MongoDB server, see Install MongoDB Community Edition in the Server manual.

MongoDB レプリカセットの配置は、接続されたインスタンス、つまりノードのグループであり、ノードは同じデータセットを保存します。 このインスタンスの構成は、データの冗長性と高いデータ可用性を提供します。

レプリカセットの配置に接続するには、各ノードのホスト名とポート番号をカンマで区切って指定し、レプリカセット名を 接続stringの replicaSet パラメータの値として指定します。

レプリカセットに接続するために Lambda アプリケーションの .env ファイルに追加できる接続stringを示すこの例では、次のサンプル値を使用します。

  • host1MongoDB ノードのホスト名は 、 host2 、 host3で、

  • 27017 は、それらのホスト上で MongoDB が実行されるポートとして、

  • myRS として、レプリカセットの設定された名前

  • myUser データベースユーザーの認証情報としての とmyPass123

DB_URI="mongodb://myUser:myPass123@host1:27017,host2:27017,host3:27017/?replicaSet=myRS"

レプリカセットに接続する際、Lambda 統合が MongoDB との接続を管理するために使用するライブラリは、特に指定されていない限り、次のアクションを実行します。

  • いずれかのノードのアドレスが指定されると、レプリカセットのすべてのノードを検出します。

  • プライマリノードに対する書込み指示などの操作を適切なメンバーに送信します。 レプリカセット プライマリの詳細については、サーバー マニュアルの「レプリカセット プライマリ」を参照してください。

Tip

レプリカセットに接続するには、1 つのホストのみを指定する必要があります。 ただし、選択したホストが利用できない場合でも接続できるようにするには、ホストの全リストを提供します。

MongoDB レプリカセットのセットアップの詳細については、サーバー マニュアルの「レプリカセットの配置 」を参照してください。

MongoDBレプリカセット内の特定のノードで操作を強制的に実行するには、接続stringにノードの接続情報と、true 値を持つ directConnection パラメーターを指定します。

直接接続には、次の制限があります。

  • DNS シードリスト接続形式の接続文字列は使用できません。

  • 指定されたホストがプライマリでない場合、書き込み操作は失敗します。

  • When the host is not the primary, you must specify the secondary read preference in your connection options. To learn more about this limitation, see the secondary read preference entry in the Server manual.

次の例は、string レプリカセット内のセカンダリ.env ノードへの直接接続を確立するために Atlas アプリケーションの ファイルに追加できる接続MongoDB を示しています。この例では、次のサンプル値を使用します。

  • host2 : セカンダリ ノードのホスト名

  • 27017 : MongoDB ノードが listen するポート:

サンプル .env 直接接続を有効にするための 環境構成
DB_URI="mongodb://host2:27017/?directConnection=true&readPreference=secondary"