Docs 菜单
Docs 主页
/ / /
Laravel MongoDB
/ /

启用查询日志记录

在本指南中,您可以学习;了解如何在 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 的更多信息,请参阅“连接指南”。

要学习;了解如何根据过滤条件检索数据,请参阅检索数据指南。

后退

读取偏好

在此页面上