AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

フェデレーティッドデータベースインスタンスのクエリ履歴の取得

$queryHistory (集計)を使用して、過去7に実行されたクエリの詳細を取得できます。 $queryHistoryは、過去7日間実行された集計、 find 、カウントクエリに関する情報を含むドキュメントをクエリごとに 1 つずつ返します。 $queryHistoryによって返されたフィールドは、 $matchなどの後続のパイプライン ステージでフィルタリングできます。

$queryHistoryを実行するには、db.aggregate()ヘルパーを使用します。adminデータベースに対して $queryHistoryを実行します。

{ $queryHistory: { allUsers: <boolean> }}
フィールド
タイプ
説明
必要性

allUsers

ブール値

すべてのユーザーが実行したクエリのドキュメントを取得するかどうかを示します。 有効な値は以下のとおりです。

  • true すべてのユーザーが実行したクエリのドキュメントを取得する

  • false : 現在のユーザーのみが実行したクエリのドキュメントを取得

このオプションを使用するには、クラスターリソースに対するviewAllHistory特権が必要です。 このオプションを指定しているが、クラスター リソースに対してviewAllHistory特権がない場合、Data Federation はエラーを返します。

省略した場合、デフォルトは false になります。

任意

$queryHistoryによって返される各ドキュメントには次のフィールドが含まれます。

フィールド
タイプ
説明

appName

string

クエリを発行したアプリケーションの名前(使用可能な場合)。

background

ブール値

クエリがバックグラウンドで実行されたかどうかを示すフラグ。 値は次のいずれかになります。

  • true - クエリがbackgroundオプションをtrueに設定して実行された場合

  • false - クエリでbackgroundオプションが指定されなかった場合、またはbackgroundオプションをfalseに設定してクエリが実行された場合

collection

string

クエリが実行されたコレクションの名前。

comment

string

クエリに関連付けられたコメント(使用可能な場合)。 クエリにコメントが含まれていない場合は、空にします。

db

string

クエリが実行されたコレクションを含むデータベースの名前。

endTime

クエリの完了時間。

error

string

クエリによって返された場合、エラー。 クエリ ステータス0はエラーを示していることに注意してください。 クエリが正常に実行された場合は、空string 。

ok

整数

クエリのステータス。 値は次のいずれかになります。

  • 1、クエリが正常に実行された場合は

  • 0、クエリの実行時にエラーが発生した場合

opid

ObjectId形式の、クエリに関連付けられた操作の一意の識別子。 フィールド値は、エラーやログで確認できるcorrelationIDと同じです。

startTime

クエリの開始時間。

query

ドキュメント

実行されたクエリ操作。

user

string

クエリを実行したユーザーのユーザー名(利用可能な場合)は次の形式で表示されます: <authenticationDatabase>.<username> 。 Atlas Data Federation の認証データベースは常にadminであることに注意してください。 クエリを実行したユーザーのユーザー名が使用できない場合、値は空になります。

以下の例では、「 使い始める 」チュートリアルで説明されているDatabase0.Collection0コレクションを使用します。

以下の例では、 「 はじめに 」チュートリアルで説明されているクエリの一部が、 Database0データベース内のCollection0コレクションでuser1によって実行されたとします。 次の例では、 Database0.Collection0コレクションでuser1によって実行されたクエリに関する情報を返します。

db.aggregate([{$queryHistory: {}}]).pretty()

$queryHistory は、 Database0.Collection0コレクションで実行されたクエリごとに 1 つのドキュメントを返します。

{ "_id" : ObjectId("613fa06cf9521f85777d5be8"), "query" : [ { "$match" : { "bedrooms" : 3, "review_scores.review_scores_rating" : { "$gt" : 79 } } }, { "$count" : "numProperties" } ], "appName" : "MongoDB Shell", "user" : "admin.user1", "db" : "Database0", "collection" : "Collection0", "opid" : ObjectId("16a476f40ac6d97f22e4aa1f"), "startTime" : ISODate("2021-09-13T19:02:35.589Z"), "endTime" : ISODate("2021-09-13T19:03:08.730Z"), "ok" : 1, "background" : false}{ "_id" : ObjectId("613fa0d4f9521f85777d6bc0"), "query" : [ { "$match" : { "bedrooms" : 3 } }, { "$sort" : { "review_scores_rating" : -1 } }, { "$limit" : NumberLong(5) } ], "appName" : "MongoDB Shell", "user" : "admin.user1", "db" : "Database0", "collection" : "Collection0", "opid" : ObjectId("16a4770e387f300c22e4bdf2"), "startTime" : ISODate("2021-09-13T19:04:28.184Z"), "endTime" : ISODate("2021-09-13T19:04:52.898Z"), "ok" : 1, "background" : false}{ "_id" : ObjectId("613fa0eef9521f85777d6f6f"), "query" : [ { "$match" : { "limit" : { "$eq" : 10000 }, "products" : "Commodity" } }, { "$limit" : NumberLong(5) } ], "appName" : "MongoDB Shell", "user" : "admin.user1", "db" : "Database0", "collection" : "Collection0", "opid" : ObjectId("16a477163555e4aa22e4c53b"), "startTime" : ISODate("2021-09-13T19:05:02.342Z"), "endTime" : ISODate("2021-09-13T19:05:18.774Z"), "ok" : 1, "background" : false}{ "_id" : ObjectId("613fa147f9521f85777d7b11"), "query" : [ { "$match" : { "name" : /Lannister/ } }, { "$limit" : NumberLong(10) } ], "appName" : "MongoDB Shell", "user" : "admin.user1", "db" : "Database0", "collection" : "Collection0", "opid" : ObjectId("16a4771ba072c0a122e4c9bd"), "startTime" : ISODate("2021-09-13T19:05:25.736Z"), "endTime" : ISODate("2021-09-13T19:06:47.147Z"), "ok" : 1, "background" : false}{ "_id" : ObjectId("613fb9eccaba4e6430c7dcb7"), "query" : [ { "$group" : { "_id" : "$movies", "Collection0" : { "$push" : "$title" } } }, { "$out" : { "atlas" : { "projectId" : "{PROJECT_ID}", "clusterName" : "mySbx", "db" : "my_test", "coll" : "sample" } } } ], "appName" : "MongoDB Shell", "user" : "admin.user1", "db" : "admin", "collection" : "Collection0", "opid" : ObjectId("16a47ceba943e9cc00c98c62"), "startTime" : ISODate("2021-09-13T20:51:56.617Z"), "endTime" : ISODate("2021-09-13T20:51:56.642Z"), "ok" : 1, "background" : true}

次の例では、「Database0.Collection0 はじめに 」チュートリアルで説明されている コレクションに対して、次のようなクエリを実行します。

クエリには、$queryHistory ステージによって返される結果内でクエリを識別するのに役立つ一意の string が含まれています。 集計コマンドcomment オプションを使用してクエリにコメントを添付できます。

use Database0db.Collection0.aggregate([ { $match: {"account_id": 557378}},{$sort: {"transactions.symbol": -1}} ],{"comment":"exampleQuery"})

集計コマンドのcommentオプションの string 値を使用してクエリ履歴を検索するには、 adminデータベースに対して次のコマンドを実行します。

use admindb.aggregate([{$queryHistory: {}}, {$match: {"comment": "exampleQuery"}} ])

$queryHistory は、指定された string を含むクエリを検索し、次の例のような結果を返します。

[ { "_id": ObjectId("61e1e4c29e62172566d8e9b6"), "query": [ { "$match": { "account_id": 557378} }, { "$sort": { "transactions.symbol": -1 } } ], "comment": "exampleQuery", "appName": "mongosh 1.1.8", "user": "admin.user1", "db": "Database0", "collection": "Collection0", "opid": ObjectId("16ca3ed2577016e68d60358c"), "startTime": ISODate("2022-01-14T21:01:27.346Z"), "endTime": ISODate("2022-01-14T21:01:54.627Z"), "ok": 1, "error": "", "background": false, }]