启用查询日志记录
Overview
在本指南中,您可以学习;了解如何在 Laravel MongoDB中启用查询记录。查询日志记录可以帮助您调试查询并监控数据库交互。
开始之前
要运行本指南中的代码示例,请完成快速入门教程。 本教程说明如何使用示例数据设置MongoDB Atlas实例,并在 Laravel Web应用程序中创建以下文件:
Movie.php
文件,其中包含一个Movie
movies
模型来表示collection中的文档MovieController.php
文件,其中包含用于运行数据库操作的show()
函数browse_movies.blade.php
文件,其中包含用于显示数据库操作结果的 HTML 代码
以下部分介绍如何编辑 Laravel 应用程序中的文件以运行查找操作代码示例并查看预期输出。
启用连接日志
要启用连接上的日志,您可以在 DB
门面上使用 enableQueryLog()
方法。此方法可为您对数据库连接执行的任何查询启用MongoDB命令日志记录。
启用查询日志记录后,您执行的任何查询都将存储在内存中。要检索日志,请使用以下方法之一:
getQueryLog()
:返回MongoDB查询日志getRawQueryLog()
:返回原始MongoDB查询的日志
以下示例启用查询日志记录,执行一些查询,然后打印查询日志:
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 }
更多信息
如需了解有关连接 MongoDB 的更多信息,请参阅“连接指南”。