Docs Menu
Docs Home
/ / /
Lambda MongoDB
/

MongoDB データを表示

1

MongoDB database 内のサンプルmoviesコレクションのデータを表すために、 Movieというモデルを作成し、対応するリソース コントローラーを実行するには、次のコマンドを実行します。

php artisan make:model Movie -cr

コマンドが完了すると、次のメッセージが出力されます。

INFO Model [app/Models/Movie.php] created successfully.
INFO Controller [app/Http/Controllers/MovieController.php] created successfully.
2

app/ModelsディレクトリでMovie.phpモデルを開き、次の編集を行います。

  • Illuminate\Database\Eloquent\ModelインポートをMongoDB\Laravel\Eloquent\Modelに置き換え

  • $connectionフィールドに"mongodb"を指定する

編集されたMovie.phpファイルには、次のコードが含まれています。

<?php
namespace App\Models;
use MongoDB\Laravel\Eloquent\Model;
class Movie extends Model
{
protected $connection = 'mongodb';
}
3

app/Http/ControllersディレクトリでMovieController.phpファイルを開きます。 show()関数を次のコードで置き換えると、データベース クエリに一致する結果が検索され、それが ビューでレンダリングされます。

public function show()
{
return view('browse_movies', [
'movies' => Movie::where('runtime', '<', 60)
->where('imdb.rating', '>', 8.5)
->orderBy('imdb.rating', 'desc')
->take(10)
->get()
]);
}
4

routesディレクトリでweb.phpファイルを開きます。 次のコードに示すように、 MovieControllerbrowse_moviesというルートのインポートを追加します。

<?php
// ...
use App\Http\Controllers\MovieController;
Route::get('/browse_movies/', [MovieController::class, 'show']);
5

アプリケーション ルート ディレクトリから次のコマンドを実行して、映画データを表示するビューを作成します。

php artisan make:view browse_movies

コマンドを実行すると、次のメッセージが出力されます。

INFO View [resources/views/browse_movie.blade.php] created successfully.

resources/viewsディレクトリでbrowse_movie.blade.phpビューファイルを開きます。 内容を次のコードで置き換え、変更を保存します。

<!DOCTYPE html>
<html>
<head>
<title>Browse Movies</title>
</head>
<body>
<h2>Movies</h2>
@forelse ($movies as $movie)
<p>
Title: {{ $movie->title }}<br>
Year: {{ $movie->year }}<br>
Runtime: {{ $movie->runtime }}<br>
IMDB Rating: {{ $movie->imdb['rating'] }}<br>
IMDB Votes: {{ $movie->imdb['votes'] }}<br>
Plot: {{ $movie->plot }}<br>
</p>
@empty
<p>No results</p>
@endforelse
</body>
</html>
6

ビューを生成してbrowse_movie.blade.phpファイルを編集する代わりに、 toJson()メソッドを使用して結果を JSON 形式で表示できます。

結果を検索し、JSON ドキュメントとして返すには、 show()関数を次のコードで置き換えます。

public function show()
{
$results = Movie::where('runtime', '<', 60)
->where('imdb.rating', '>', 8.5)
->orderBy('imdb.rating', 'desc')
->take(10)
->get();
return $results->toJson();
}
7

PHP 組み込みウェブ サーバーを起動するには、アプリケーション ルート ディレクトリから次のコマンドを実行します。

php artisan serve

サーバーが起動すると、次のメッセージが出力されます。

INFO Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the server
8

ウェブ ブラウザでURL http://127.0.0.1 :8000 /browse_movies を開きます。ページには、映画のリストとそれぞれの詳細が表示されます。

Tip

アプリケーションのルート ディレクトリからphp artisan route:listコマンドを実行すると、利用可能なルートのリストが表示されます。

注意

問題が発生した場合は、 MongoDB Community フォーラムでサポートを依頼するか、ページの右側または右下にある Rate this pageタブを使用してフィードバックを送信してください。

戻る

MongoDB 接続の構成