Docs Menu
Docs Home
/ /

Ver datos de MongoDB

1

Crea un modelo llamado Movie para representar datos de la colección de muestra movies en su base de datos MongoDB y el controlador de recursos correspondiente ejecutando el siguiente comando:

php artisan make:model Movie -cr

Cuando se completa el comando, se muestra el siguiente mensaje:

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

Abra el modelo Movie.php en su directorio app/Models y realice las siguientes modificaciones:

  • Reemplace la importación Illuminate\Database\Eloquent\Model con MongoDB\Laravel\Eloquent\Model

  • Especifique "mongodb" en el campo $connection

El archivo Movie.php editado contiene el siguiente código:

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

Abra el archivo MovieController.php en su directorio app/Http/Controllers. Reemplace la función show() con el siguiente código para recuperar los resultados que coinciden con una consulta de base de datos y representarlos en la vista:

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

Abra el archivo web.php en el directorio routes. Agregue una importación para MovieController y una ruta llamada browse_movies, como se muestra en el siguiente código:

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

Ejecute el siguiente comando desde el directorio raíz de la aplicación para crear una vista que muestre datos de películas:

php artisan make:view browse_movies

Después de ejecutar el comando, aparece el siguiente mensaje:

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

Abra el archivo de vista browse_movies.blade.php en el directorio resources/views. Reemplace el contenido con el siguiente código y guarde los cambios:

<!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

En lugar de generar una vista y editar el archivo browse_movies.blade.php, puede utilizar el método toJson() para mostrar los resultados en formato JSON.

Reemplace la función show() con el siguiente código para recuperar resultados y devolverlos 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();
}
7

Ejecute el siguiente comando desde el directorio raíz de la aplicación para iniciar su servidor web integrado PHP:

php artisan serve

Una vez iniciado el servidor, se muestra el siguiente mensaje:

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

Abrir la URL http://:127.0.0.1 8000/browse_movies en tu navegador web. La página muestra una lista de películas y detalles sobre cada una.

Tip

Puede ejecutar el comando php artisan route:list desde el directorio raíz de su aplicación para ver una lista de rutas disponibles.

Nota

Si tiene problemas en este paso, envíe sus comentarios mediante el Rate this page pestaña en el lado derecho o inferior derecho de esta página.

Puede encontrar soporte para preguntas generales mediante la etiqueta Stack Overflow de MongoDB o la comunidad de Reddit de MongoDB.

Volver

Configure su conexión