Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Lambda MongoDB
/ /

クエリ ログを有効にする

このガイドでは、 MongoDBでクエリのログ記録を有効にする方法を学習できます。クエリのロギングは、クエリをデバッグし、データベースのインタラクションを監視するのに役立ちます。

このガイドのコード例を実行するには、 クイック スタートチュートリアルを完了します。 このチュートリアルでは、サンプル データを使用して MongoDB Atlas インスタンスを設定し、Lambda ウェブ アプリケーションで次のファイルを作成する手順を説明します。

  • Movie.php ファイル( moviesコレクション内のドキュメントを表すMovieモデルを含む)

  • 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 への接続の詳細については、「接続ガイド」を参照してください。

フィルター条件に基づいてデータを取得する方法については、 「データの取得」ガイドを参照してください 。

戻る

読み込み設定 (read preference)

項目一覧