Cómo configurar Mongo en Laravel

Laravel es uno de los frameworks más populares de PHP, y Eloquent hace maravillas con MySQL, pero también hay otros motores que están ganando amplia fama, y uno de estos es Mongo, pero la integración no es tan natural como cuando utilizamos MySQL, por lo que aquí veremos cómo utilizarlo.

En primera instancia, todo parece ser muy sencillo, agregas la configuración a config/database.php y listo.

'mongodb' => [
    'driver'   => 'mongodb',
    'host'     => env('MONGO_DB_HOST', 'localhost'),
    'port'     => env('MONGO_DB_PORT', 27017),
    'database' => env('MONGO_DB_DATABASE'),
    'username' => env('MONGO_DB_USERNAME'),
    'password' => env('MONGO_DB_PASSWORD'),
    'options'  => [
        'database' => env('MONGO_DB_DATABASE') // Mongo 3 necesita esto para su autorización de base de datos
    ]
],

Y ahora, ¿solo usamos Eloquent y ya? Pues no… no todo es tan hermoso, necesitamos instalar el paquete laravel-mongo de jenssegers, se puede instalar fácilmente desde composer.composer require jenssegers/mongodb

En el sitio de jenseegers viene como agregarlo y configurarlo a nuestro proyecto, por lo que no tiene mucho caso que se los escriba aquí también, es un proceso sencillo.

Una vez instalado, podemos revisar en el sitio que métodos de eloquent, así como de query builder están disponibles para nuestra utilización, pero hay bastantes funciones que aún no son soportadas por ese paquete.

Pero para nuestra fortuna, se nos permite poder escribir raw queries, así que tenemos todo el poder de mongo a nuestra disposición, aunque no se escriben exactamente igual que como lo harías en mongo, pero eso, se los pondré en una futura entrega (Y no, no me tardaré otros 4 meses en escribir algo).