Visualizar dados do MongoDB
Criar um modelo e um controlador
Crie um modelo chamado Movie
para representar dados da collection movies
em seu MongoDB database e o controlador de recurso correspondente executando o seguinte comando:
php artisan make:model Movie -cr
Quando o comando é concluído, ele gera a seguinte mensagem:
INFO Model [app/Models/Movie.php] created successfully. INFO Controller [app/Http/Controllers/MovieController.php] created successfully.
Edite o modelo para usar a integração com o Laravel
Abra o modelo Movie.php
no seu diretório app/Models
e faça as seguintes edições:
Substitua a importação
Illuminate\Database\Eloquent\Model
porMongoDB\Laravel\Eloquent\Model
Especifique
"mongodb"
no campo$connection
O arquivo Movie.php
editado contém o seguinte código:
namespace App\Models; use MongoDB\Laravel\Eloquent\Model; class Movie extends Model { protected $connection = 'mongodb'; }
Adicionar uma função de controlador
Abra o arquivo MovieController.php
no seu diretório app/Http/Controllers
. Substitua a função show()
pelo seguinte código para recuperar resultados que correspondem a uma query de reconhecimento de data center e renderizá-lo na view:
public function show() { return view('browse_movies', [ 'movies' => Movie::where('runtime', '<', 60) ->where('imdb.rating', '>', 8.5) ->orderBy('imdb.rating', 'desc') ->take(10) ->get() ]); }
Gerar uma visualização
Execute o seguinte comando a partir do diretório raiz do aplicativo para criar uma visualização que exiba os dados do filme:
php artisan make:view browse_movies
Depois de executar o comando, ele gera a seguinte mensagem:
INFO View [resources/views/browse_movie.blade.php] created successfully.
Abra o arquivo de visualização browse_movie.blade.php
no diretório resources/views
. Substitua o conteúdo pelo seguinte código e salve as alterações:
<!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>
Opcionalmente, visualize seus resultados como documentos JSON
Ao invés de gerar uma visualização e editar o arquivo browse_movie.blade.php
, você pode utilizar o método toJson()
para exibir seus resultados no formato JSON.
Substitua a função show()
pelo seguinte código para recuperar resultados e devolvê-los como documentos JSON:
public function show() { $results = Movie::where('runtime', '<', 60) ->where('imdb.rating', '>', 8.5) ->orderBy('imdb.rating', 'desc') ->take(10) ->get(); return $results->toJson(); }
Visualizar os dados do filme
Abra o URL http://127.0.0.1:8000/browse_movies no seu navegador da web. A página mostra uma lista de filmes e detalhes sobre cada um deles.
Dica
Você pode executar o comando php artisan route:list
a partir do diretório raiz do aplicativo para visualizar uma lista de rotas disponíveis.
Observação
Se você tiver problemas, peça ajuda nos Fóruns daMongoDB Community ou envie comentários usando a guia Rate this page no lado direito ou inferior direito da página.