Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

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

項目一覧

  • 構文
  • フィールド
  • 出力
  • クエリの詳細を取得する
  • 特定のクエリのフィルタリング $queryHistory出力

$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 。
queryFilterComments
任意のBSON typeの配列

クエリ パイプライン内で$comment演算子に含まれるコメント値。 クエリに$comment演算子が含まれていない場合は省略されます。

$comment演算子の値は、有効なBSON タイプであれば何でも使用できます。

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オプションまたは$comment演算子を使用して、クエリにコメントを添付できます。 この例では、両方の方法を使用して一意の文字列を クエリに添付します。

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

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

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

注意

$comment 演算子の値として、有効な BSON type を指定できます。

$matchクエリで$comment演算子の string 値を使用してクエリ履歴を検索するには、 adminデータベースに対して次のコマンドを実行します。

use admin
db.aggregate([{$queryHistory: {}}, {$match:
{queryFilterComments: "test"}}])

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

[
{
"_id": ObjectId("61e1e4c29e62172566d8e9b6"),
"query": [
{ "$match": { "account_id": 557378, "$comment": "test" } },
{ "$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,
"queryFilterComments": [ "test" ]
}
]

戻る

クエリの終了