Configurar Laravel con MongoDB Parte II

por - julio 30, 2020

Configurar Laravel con MongoDB
Configuración de Laravel con MongoDB parte I
Continuación...

Continuando la publicación anterior, que puede ver aquí, ya tenemos nuestra Base de datos configurada con algunos documentos en nuestra colección "jobs" o la que ustedes hayan creado, ahora vamos a proceder a configurar nuestro proyecto en Laravel para que se conecte a nuestra Base de datos.

Manos a la obra...

Lo primero que debemos hacer y para facilitarnos mucho está labor, es instalar el siguiente paquete con composer: 

            
    composer require jenssegers/mongodb
            
        
Igual podemos visitar aquí el repositorio de Github, donde está mejor documentado como usar está librería o paquete.

Sabremos que la instalación se ha hecho correctamente, cuando veamos en nuestro archivo composer.json esté nuestra librería instalada, así como muestra a continuación:

En la sección de require está la librería con su versión de jenssegers/mongodb

Dependiente de su versión de Laravel, deberán copiar el provider en el archivo config/app.php, este paso no es necesario para versiones nuevas de Laravel, pero igual no hace sin desean realizar este paso.

Forma de importat en los provider del sistema un paquete externo


Como vemos en la siguiente imagen, pegamos esta línea dentro de la sección "providers". Aquí la línea para que la puedan copiar:
            
    Jenssegers\Mongodb\MongodbServiceProvider::class,
            
        
Luego debemos ir al archivo config/database.php y debemos agregar este elemento del array "connections":
            
    'mongodb' => [
        'driver' => 'mongodb',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', 27017),
        'database' => env('DB_DATABASE', 'homestead'),
        'username' => env('DB_USERNAME', 'homestead'),
        'password' => env('DB_PASSWORD', 'secret'),
        'options' => [
            // here you can pass more settings to the Mongo Driver Manager
            // see https://www.php.net/manual/en/mongodb-driver-manager.construct.php under "Uri Options" for a list of complete
            parameters that you can use
        
            'database' => env('DB_AUTHENTICATION_DATABASE', 'admin'), // required with Mongo 3+
        ],
    ],
            
        
Ya una vez colocado está configuración, nos vamos a ir al archivo .env y haremos las siguientes ediciones. Cabe destacar que deben colocar las configuraciones pertinentes que hayan hecho al crear la base de datos.
            
    DB_CONNECTION=mongodb
    DB_HOST=127.0.0.1
    DB_PORT=27017
    DB_DATABASE=test_db
    DB_USERNAME=admin
    DB_PASSWORD=admin
    DB_AUTHENTICATION_DATABASE=test_db
            
        
Debe quedar parecido a lo anterior. Aquí estamos super cerca de probar que funcione, porque en este punto ya debe estar funcionando. Una manera de probarlo, pero sin ver resultado, podemos ejecutar el siguiente comando en nuestra terminal y verificar en el navegador si abre la pantalla de bienvenida de Laravel que nos acostumbra a mostrar:
            
    php artisan serve
            
        
Debe verse en el navegador escribiendo http://localhost:8080 o el puerto que les indique al iniciar laravel.
Pantalla de Bienvenida al Framework Laravel, es un Hola Mundo!


Para realizar ya una prueba más real, podemos agarrar y crearnos un modelo con el nombre de nuestra colección que creamos en la publicación anterior. En mi caso mi colección se llama "jobs" por lo que creare un modelo con nombre Job.

Ejecutaremos el siguiente comando:
            
    php artisan make:model Models/Job
                
            
Donde se creará un archivo dentro de la carpeta app/Models con el nombre Job.php. Allí haremos unas ediciones al código para que nos queda de la siguiente manera:
            
    <?php
    
    namespace App\Models;
    
    use Jenssegers\Mongodb\Eloquent\Model;
    
    class Job extends Model
    {
        protected $connection = 'mongodb';
    }
                
            
Ahora vamos routes/web.php y colocaremos lo siguiente:
            
    <?php
    
    use App\Models\Job;
    
    Route::get('/', function () {
        // return view('welcome');
    
        return Job::all();
    
    });

                    
                
Esto no es lo más adecuado, pero ya debería de devolver los documentos de nuestra colección igualmente desde la página de bienvenida de Laravel, es decir que solo bastaría recargar la página en el navegador. Debe aparecer les algo parecido a continuación.

Resultado a la consulta de la colección creada en base de datos

Listo ya tenemos Laravel con MongoDB funcionando. Ya lo que falta es crear un controlador y hacer el respectivo CRUD y lo mejor de todo, pueden hacerlo igual como si una base de datos relacional se tratase, pero eso lo dejo a su disposición y comenzar a jugar con su nuevo proyecto Laravel MongoDB.

Conclusión

Definitivamente configurar un proyecto Laravel con MongoDB puede ser un poco tortuoso, pero ya una vez funcionando se hace un poco más fácil su uso, además que nos quita tener que hacer migraciones iniciales al proyecto, aunque puede ser necesario para configurar indices y alguna que otra regla a nuestra base de datos. Sin más que decir me despido en esta ocasión, ya saben dejen sus comentarios que les pareció este minitutorial, si ya empezaron a hacer su CRUD y les surgieron dudas, no lo piensen dos veces y déjenlo por aquí que seguro les responderemos.

Saludos y hasta luego.

También te puede interesar

1 comentarios

  1. Harrahs Casino - Jordan 16 Retro
    Harrahs Casino has where can i find air jordan 18 retro yellow suede a huge range of slot machines how to find air jordan 18 retro yellow in the rooms. They have how to find air jordan 18 retro men blue a selection of over how can i find air jordan 18 retro men blue 700 titles that have different types of game. You can play at air jordan 18 stockx cheap Harrah's

    ResponderBorrar

ToTop