Overview
このガイドでは、Lambda MongoDBがクエリから結果を返す方法をカスタマイズする方法を学習できます。where() メソッドにさらにメソッドを連鎖させることで、検索操作の結果を変更できます。
次のセクションでは、 where()メソッドの動作を変更する方法を示します。
スキップして結果を制限するには、
skip()メソッドを使用してスキップするドキュメント数を設定し、take()メソッドを使用して返されるドキュメントの合計数を設定しますクエリ結果のソート
orderBy()メソッドを使用して、フィールド値に基づいて指定された順序でクエリ結果を返します。
Laravel 統合の効率モデルの詳細については、「 効率モデル セクション 」を参照してください。
始める前に
このガイドのコード例を実行するには、「クイック スタート 」チュートリアルを完了してください。 このチュートリアルでは、サンプル データを使用して MongoDB Atlas インスタンスを設定し、Lambda ウェブ アプリケーションで次のファイルを作成する手順を説明します。
Movie.phpファイル(moviesコレクション内のドキュメントを表すMovieモデルを含む)MovieController.phpファイル(データベース操作を実行するためのshow()関数を含む)browse_movies.blade.phpデータベース操作の結果を表示するための HTML コードを含む ファイル
次のセクションでは、Laravel アプリケーション内のファイルを編集して検索操作コード例を実行し、期待される出力を表示する方法について説明します。
結果をスキップして結果を制限する
この例では、 yearの値が1999であるドキュメントをクエリします。 この操作では、一致する最初の2ドキュメントがスキップされ、合計で3ドキュメントが出力されます。
クエリを指定するには、次の構文を使用します。
$movies = Movie::where('year', 1999) ->skip(2) ->take(3) ->get();
browse_moviesビューでクエリ結果を表示するには、 MovieController.phpファイルのshow()関数を次のコードのように編集します。
class MovieController { public function show() { $movies = Movie::where('year', 1999) ->skip(2) ->take(3) ->get(); return view('browse_movies', [ 'movies' => $movies ]); } }
Title: Three Kings Year: 1999 Runtime: 114 IMDB Rating: 7.2 IMDB Votes: 130677 Plot: In the aftermath of the Persian Gulf War, 4 soldiers set out to steal gold that was stolen from Kuwait, but they discover people who desperately need their help. Title: Toy Story 2 Year: 1999 Runtime: 92 IMDB Rating: 7.9 IMDB Votes: 346655 Plot: When Woody is stolen by a toy collector, Buzz and his friends vow to rescue him, but Woody finds the idea of immortality in a museum tempting. Title: Beowulf Year: 1999 Runtime: 95 IMDB Rating: 4 IMDB Votes: 9296 Plot: A sci-fi update of the famous 6th Century poem. In a besieged land, Beowulf must battle against the hideous creature Grendel and his vengeance seeking mother.
クエリ結果のソート
指定されたフィールドの値に基づいてクエリ結果を順序付けするには、 where()メソッドとそれに続くorderBy()メソッドを使用します。
結果に対して昇順または降順の並べ替え方向を設定できます。 デフォルトでは、 orderBy()メソッドは指定されたフィールド名に対して昇順の並べ替えを設定しますが、2 番目のパラメーターとして"asc"を渡すことで、昇順の並べ替えを明示的に指定できます。 降順の並べ替えを指定するには、2 番目のパラメーターとして"desc"を渡します。
ドキュメント内の特定のフィールドに重複する値が含まれている場合は、並べ替え対象のフィールドをさらに指定することで同順位に対応できます。 これにより、他のフィールドに一意の値が含まれている場合でも、結果の一貫性が確保されます。
この例では、 countriesフィールドの値に"Indonesia"が含まれているドキュメントをクエリし、最初にyearフィールドで昇順に並べ替え、次にtitleフィールドで降順で並べ替えます。
クエリを指定するには、次の構文を使用します。
$movies = Movie::where('countries', 'Indonesia') ->orderBy('year') ->orderBy('title', 'desc') ->get();
browse_moviesビューでクエリ結果を表示するには、 MovieController.phpファイルのshow()関数を次のコードのように編集します。
class MovieController { public function show() { $movies = Movie::where('countries', 'Indonesia') ->orderBy('year') ->orderBy('title', 'desc') ->get(); return view('browse_movies', [ 'movies' => $movies ]); } }
Title: Joni's Promise Year: 2005 Runtime: 83 IMDB Rating: 7.6 IMDB Votes: 702 Plot: A film delivery man promises ... Title: Gie Year: 2005 Runtime: 147 IMDB Rating: 7.5 IMDB Votes: 470 Plot: Soe Hok Gie is an activist who lived in the sixties ... Title: Requiem from Java Year: 2006 Runtime: 120 IMDB Rating: 6.6 IMDB Votes: 316 Plot: Setyo (Martinus Miroto) and Siti (Artika Sari Dewi) are young married couple ... ...
Tip
並べ替えの詳細については、次のリソースを参照してください。
サーバー マニュアルの用語集における自然な順序
詳細情報
Lambda 統合を使用して検索操作を実行する方法を示す実行可能なコード例については、次の使用例を参照してください。
フィルター条件に基づいてデータを取得する方法については、 「データの取得」ガイドを参照してください 。