Overview
このガイドでは、 MongoDBで検索操作を実行するときに読み込み設定 (read preference)を設定する方法を学習できます。
始める前に
このガイドのコード例を実行するには、「クイック スタート 」チュートリアルを完了してください。 このチュートリアルでは、サンプル データを使用して MongoDB Atlas インスタンスを設定し、Lambda ウェブ アプリケーションで次のファイルを作成する手順を説明します。
Movie.phpファイル(moviesコレクション内のドキュメントを表すMovieモデルを含む)MovieController.phpファイル(データベース操作を実行するためのshow()関数を含む)browse_movies.blade.phpデータベース操作の結果を表示するための HTML コードを含む ファイル
次のセクションでは、Laravel アプリケーション内のファイルを編集して検索操作コード例を実行し、期待される出力を表示する方法について説明します。
読み込み設定(read preference)の設定
読み取り操作を受信するレプリカセットメンバーを指定するには、 readPreference() メソッドを使用して読み込み設定 (read preference)を設定します。
readPreference() メソッドは次のパラメーターを受け入れます:
mode: (必須) 読み込み設定 (read preference)モードを指定する string 値。tagSets: (任意)特定のレプリカセットノードに対応するキーと値のタグを指定する配列値。options: (任意)追加の読み込み設定 (read preference)オプションを指定する配列値。
Tip
使用可能な読み込み設定 (read preference)モードとオプションの完全なリストを表示するには、 MongoDB PHP拡張ドキュメントのMongoDB\ドライバー\ReadPreference::__construct を参照してください。
次の例では、titleフィールドの値が "Carrie" であるドキュメントをクエリし、読み込み設定 (read preference)を ReadPreference::SECONDARY_PREFERRED に設定します。その結果、クエリは、セカンダリレプリカセットメンバーから結果を検索するか、セカンダリが使用できない場合はプライマリ メンバーから結果を検索します。
クエリを指定するには、次の構文を使用します。
$movies = Movie::where('title', 'Carrie') ->readPreference(ReadPreference::SECONDARY_PREFERRED) ->get();
browse_moviesビューでクエリ結果を表示するには、 MovieController.phpファイルのshow()関数を次のコードのように編集します。
class MovieController { public function show() { $movies = Movie::where('title', 'Carrie') ->readPreference(ReadPreference::SECONDARY_PREFERRED) ->get(); return view('browse_movies', [ 'movies' => $movies ]); } }
詳細情報
フィルター条件に基づいてデータを検索する方法については、 「MongoDB データの検索」ガイドを参照してください。