Overview
En esta guía, puedes aprender cómo activar el registro de consultas en Laravel MongoDB. El registro de queries puede ayudarte a depurar tus queries y supervisar las interacciones con la base de datos.
Antes de empezar
Para ejecutar los ejemplos de código de esta guía, complete el Configuración rápida tutorial. Este tutorial proporciona instrucciones para configurar una instancia de MongoDB Atlas con datos de muestra y crear los siguientes archivos en su aplicación web Laravel:
Movie.phparchivo, que contiene un modeloMoviepara representar documentos en la colecciónmoviesMovieController.phparchivo, que contiene una funciónshow()para ejecutar operaciones de base de datosbrowse_movies.blade.phparchivo, que contiene código HTML para mostrar los resultados de las operaciones de la base de datos
Las siguientes secciones describen cómo editar los archivos de tu aplicación Laravel para ejecutar los ejemplos de código de operaciones de búsqueda y ver la salida esperada.
Habilitar los registros en una conexión
Para habilitar registros en una conexión, puedes usar el método enableQueryLog() en la fachada DB. Este método activa el registro de comandos de MongoDB en cualquier consulta que realice sobre la conexión de la base de datos.
Tras habilitar el registro de consultas, todas las consultas que realice se almacenarán en memoria. Para recuperar los registros, utilice uno de los siguientes métodos:
getQueryLog(): Retorna un registro de queries de MongoDBgetRawQueryLog()Devuelve un registro de las consultas brutas de MongoDB
El siguiente ejemplo permite el registro de consultas, realiza algunas consultas y luego imprime el registro de consultas:
DB::connection('mongodb')->enableQueryLog(); Movie::where('title', 'Carrie')->get(); Movie::where('year', '<', 2005)->get(); Movie::where('imdb.rating', '>', 8.5)->get(); $logs = DB::connection('mongodb')->getQueryLog(); foreach ($logs as $log) { echo json_encode($log, JSON_PRETTY_PRINT) . PHP_EOL; }
{ "query": "{ \"find\" : \"movies\", \"filter\" : { \"title\" : \"Carrie\" } }", "bindings": [], "time": 29476 } { "query": "{ \"find\" : \"movies\", \"filter\" : { \"year\" : { \"$lt\" : { \"$numberInt\" : \"2005\" } } } }", "bindings": [], "time": 29861 } { "query": "{ \"find\" : \"movies\", \"filter\" : { \"imdb.rating\" : { \"$gt\" : { \"$numberDouble\" : \"8.5\" } } } }", "bindings": [], "time": 27251 }
Información Adicional
Para obtener más información sobre cómo conectarse a MongoDB, consulte la Guía de conexión.
Para aprender cómo recuperar datos en función de criterios de filtro, consulta la guía Recuperar datos.