Docs Menu
Docs Home
/ / /
Lambda MongoDB
/ /

クエリ結果の変更

このガイドでは、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 統合を使用して検索操作を実行する方法を示す実行可能なコード例については、次の使用例を参照してください。

フィルター条件に基づいてデータを取得する方法については、 「データの取得」ガイドを参照してください 。

戻る

検索テキスト

項目一覧