Overview
En esta guía, aprenderá a habilitar el registro de consultas en Laravel MongoDB. El registro de consultas le ayudará a depurar sus consultas y a supervisar las interacciones con la base de datos.
Antes de empezar
Para ejecutar los ejemplos de código de esta guía, complete el Tutorial deinicio rápido. Este tutorial proporciona instrucciones para configurar una instancia de MongoDB Atlas con datos de ejemplo y crear los siguientes archivos en su aplicación web de 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 en su aplicación Laravel para ejecutar los ejemplos de código de la operación de búsqueda y ver el resultado esperado.
Habilitar registros en una conexión
Para habilitar los registros en una conexión, puede usar el método enableQueryLog() en la fachada DB. Este método habilita el registro de comandos de MongoDB en cualquier consulta que realice en 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 consultas MongoDB sin procesar
El siguiente ejemplo habilita 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 según criterios de filtro, consulte la guía Recuperar datos.