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

$queryStats(集計ステージ)

$queryStats

警告

$queryStats集計ステージはサポートされておらず、将来のリリースで安定することは保証されません。 このステージの特定の出力形式に依存する機能はビルドしないでください。出力は将来のリリースで変更される可能性があるためです。

記録されたクエリの実行時間統計を返します。

$queryStats aggregate()、find()、distinct()、count()、update()、insert()、deleteOne()、およびdeleteMany()クエリのメトリクスを収集して報告します。$queryStats は、Queryable Encryption を使用するクエリの情報を収集しません。

The $queryStats stage is enabled on deployments hosted on MongoDB Atlas with a cluster tier of at least M10.

$queryStatsステージを実行するには、パイプラインが次の要件を満たしている必要があります。

  • パイプラインはadminデータベースで実行する必要があります。

  • $queryStats は、パイプラインの最初のステージである必要があります。

db.adminCommand( {
aggregate: 1,
pipeline: [
{
$queryStats: {
transformIdentifiers: {
algorithm: <string>,
hmacKey: <binData> /* subtype 8 - used for sensitive data */
}
}
}
],
cursor: { }
} )

重要

特定のコレクションに対して$queryStatsを実行することはできません。 完全な例については、「例 」を参照してください。

$queryStats は、次のフィールドがあります。

フィールド
必要性
タイプ
説明

transformIdentifiers

任意

ドキュメント

$queryStats出力の追加の変換オプションを指定します。

transformIdentifiers
.algorithm

transformIdentifiersオブジェクトを指定する場合は必須です

文字列

出力内の名前空間情報とフィールド名に適用されるハッシュ変換のタイプ。 現在サポートされているalgorithm値はhmac-sha-256のみです。

transformIdentifiers
.hmacKey

transformIdentifiersオブジェクトを指定する場合は必須です

binData

HMAC 変換での秘密キー入力。

配置でアクセス制御が強制されている場合、 $queryStatsを実行しているユーザーには次の権限が必要です。

  • transformIdentifiersオプションなしで$queryStatsを実行するには、ユーザーはqueryStatsRead特権アクションを持っている必要があります。

  • transformIdentifiersオプションを使用して$queryStatsを実行するには、ユーザーはqueryStatsReadとqueryStatsReadTransformedの両方の特権アクションを持っている必要があります。

組み込みのclusterMonitor queryStatsReadqueryStatsReadTransformedロールには、 特権と 特権が付与されます。次の例では、 adminデータベースでclusterMonitorロールを付与しています。

db.grantRolesToUser(
"<user>",
[ { role: "clusterMonitor", db: "admin" } ]
)

次のセクションでは、 $queryStatsステージの動作の詳細について説明します。

$queryStatsステージの統計情報は、メモリ内に保存される仮想コレクションで追跡されます。 仮想コレクションのメモリ制限は、システムの合計メモリの 1% です。

バージョン9.0の新機能。

MongoDB 9.0 以降、$queryStats はデフォルトで読み取り操作と書き込み (write) 操作の 1% のサンプルの統計を収集します。サンプリングレートを変更するには、読み取り操作の場合は internalQueryStatsSampleRate パラメータを、書き込み (write) 操作の場合は internalQueryStatsWriteCmdSampleRate パラメータを設定します。どちらのパラメータも 0.0 から 1.0 までの値を受け入れます。

$queryStats は MongoDB がサンプルした操作のみを報告するため、その出力は配置に対して実行された操作のサブセットを表します。カウントと実行時間は、サンプルされた操作のみを反映します。

$queryStats は、共通のプロパティを持つクエリを同じ出力ドキュメントにグループ化します。 結果として得られるドキュメントは、クエリ統計エントリと呼ばれます。

$queryStats は、ユーザーから提供されたフィールド値をデータ型に正規化することで、同様のクエリをグループ化します。 たとえば、 { item: 'card' }に指定されたフィルターは{ item : '?string'}に正規化されます。 $queryStatsは、 hintやcommentなどの一部のクエリ オプションの値も正規化します。

$queryStats では、 readConcernやreadPreferenceなどのオプションのリテラル値が保持されます。

クエリ統計エントリに含まれるオプションの完全なリストについては、 find コマンド クエリシェイプ を参照してください。

HMAC キーがtransformIdentifiersオプションに指定されている場合、 $queryStatsは HMAC キーを使用して、次のデータに HMAC-SHA-256 ハッシュ関数を適用します。

  • ドキュメント フィールド名

  • コレクション名

  • データベース名

$queryStats では、次のデータには HMAC 変換は適用されません。

  • 演算子名などの MQL キーワード(例: $gte )。

  • パラメータ名( $setWindowFieldsのpartitionByパラメータなど)

  • フィールド値。 $queryStats は、クエリが記録されるときに、クエリ内のフィールド値をデータ型( 数値 やstringなど)に正規化します。 $queryStatsはユーザー データを含むフィールド値を保存しません。

変換された出力の例については、「変換された例 」を参照してください。

MongoDB は配置ログに$queryStats操作を記録します。デフォルトでは、MongoDBは$queryStats操作の呼び出しのみをログに記録し、操作の出力は記録しません。transformIdentifiersオプションを含む$queryStats操作の場合、変換された出力をログ エントリに含めるかどうかを指定できます。

$queryStatsのログ動作を制御する方法については、「 $queryStats ログ出力の切り替え 」を参照してください。

変更ストリームのクエリ統計は、次のいずれかのイベントが発生したときに更新されます。

  • カーソルが作成される

  • getMore操作が完了しました

  • カーソルが閉じている

変更ストリームに対して報告されるクエリ統計は、次の動作をします。

  • totalExecMicrosなどの実行メトリクスには、直近の操作(カーソルの作成、 getMore 、またはカーソルの閉じ)の情報が含まれています。

  • 内部getMore操作によりexecCountメトリクスが増加します。

  • firstResponseExecMicros とtotalExecMicrosは、 getMore操作ごとに統計情報が収集および更新されるため、常に同じです。

  • カーソルが閉じると、 lastExecutionMicrosは0になります。

バージョン8.3の新機能。

シャーディングされたクラスターでは、$queryStats が有効になっている場合、 MongoDB はそれぞれの mongod と mongos でクエリ統計を個別に記録します。シャードサーバーは、mongos から発生したクエリの統計情報もレコード。これらは、ユーザーが mongos を介してルーティングするクエリに対して、より完全なシャードレベルのメトリクスを提供します。

$queryStats は、クエリ統計エントリの配列を返します。 一部のクエリ統計エントリ プロパティにはリテラル値が含まれており、一部のプロパティは一般的なクエリをグループ化するように正規化されています。

注意

MongoDB 9.0 は、メトリクスの組織化を改善するために $queryStats の出力構造を更新します。

クエリ統計エントリには、次の最上位ドキュメントが含まれます。

ドキュメント
説明

key

クエリ統計出力のエントリを定義する属性の一意の組み合わせ。 keyには次のような属性が含まれています。

属性の一意の組み合わせごとに、 $queryStats仮想コレクションに個別のエントリが作成されます。

asOf

$queryStatsが$queryStats仮想コレクションからこのエントリを読み取った UTC 時間。 asOfは必ずしも各結果に対して同じ UTC 時間を返すわけではありません。 内部的には、データ構造はパーティション化され、各パーティションは個別の時点で読み取られます。

metrics

各クエリ統計エントリに関連付けられた集計されたランタイム メトリクスが含まれています。 各クエリ統計エントリは、同じキーを共有する各クエリの統計情報を記録します。

出力配列内の各ドキュメントには、次のフィールドが含まれています。

フィールド
タイプ
リテラルまたは正規化
説明

key

ドキュメント

literal

クエリのセットをグループ化するクエリシェイプと追加のクエリ属性が含まれます

key.queryShape

ドキュメント

literal

Contains attributes used to group similar queries together. For more information, see Query Shape.

key.client

ドキュメント

literal

キーに関連付けられたクライアント情報を記述します

key.client.application

ドキュメント

literal

クライアント・アプリケーション名

key.client.driver

ドキュメント

literal

クエリの発行に使用されるドライバーについて説明します

key.client.driver.name

文字列

literal

クエリの発行に使用されるドライバーの名前。 可能な値はmongoshとnodejsです。

key.client.driver.version

文字列

literal

クエリの発行に使用されるドライバーのバージョン番号

key.client.os

ドキュメント

literal

クエリを発行したクライアントが使用するオペレーティング システムを説明します

key.client.os.type

文字列

literal

オペレーティング システムの種類

key.client.os.name

文字列

literal

オペレーティング システムの名前

key.client.os.architecture

文字列

literal

オペレーティング システムのアーキテクチャ。 可能な値はarm64とx86_64です。

key.client.os.version

文字列

literal

オペレーティング システムのバージョン番号

key.readConcern

ドキュメント

literal

キーの 読み取り保証 ( read concern )

key.collectionType

文字列

literal

The type of collection the query was issued on. For more information, see Collection Type.

key.hint

ドキュメントまたは文字列

正規化

クエリのヒントとして使用されたインデックス

key.batchSize

文字列

正規化

キーのバッチするサイズ。バッチ サイズは、クエリ結果の各バッチするで返されるドキュメントの最大数を指定します。デフォルトでは 、初期バッチするサイズは 101 ドキュメントまたはドキュメントの 16 メビバイト(MiB)値のうち小さい方です。それ以降のバッチの最大サイズは 16 MiB です。batchSize では 16 MiB より小さい制限を適用できますが、大きくすることはできません。設定すると、batchSize は batchSize ドキュメントまたは 16 MiB 値のドキュメントのうち小さい方です。

key.comment

文字列

正規化

キーに関連付けられたコメント

key.maxTimeMS

文字列

正規化

キーに関連付けられたmaxTimeMS値

key.noCursorTimeout

ブール値

正規化

キーに関連付けられたnoCursorTimeoutオプション

key.readPreference

文字列

literal

キーに関連付けられた読み込み設定(read preference )

key.apiVersion

文字列

literal

キーに関連付けられたStable APIバージョン。MongoDB Stable API for サーバー Upgradesを参照してください。

key.apiStrict

ブール値

literal

キーに関連付けられたapiStrictパラメータの値。 「 Stable API パラメーター 」を参照してください。

key.apiDeprecationErrors

ブール値

literal

キーに関連付けられたapiDeprecationErrorsパラメータの値。 「 Stable API パラメーター 」を参照してください。

keyHash

文字列

literal

key内の値のハッシュされた表現。 各一意のkeyHash値は、 $queryStatsメモリ ストア内の一意のエントリに対応します。

queryShapeHash

文字列

literal

バージョン8.0の新機能。

queryShapeHash は、string クエリシェイプ のハッシュを含む 16 進数の です。詳細については、「クエリシェイプ 」を参照してください。

metrics

ドキュメント

literal

キーの実行時統計を記述します

metrics.cursor

ドキュメント

literal

バージョン9.0の新機能。

カーソルとバッチするプロトコルに関連するメトリクス

metrics
.cursor
.firstResponseExecMicros

ドキュメント

literal

バージョン9.0で変更。

キー内のクエリの処理が開始されてから、サーバーが結果の最初のバッチするを返すまでに費やされた時間を説明します

firstResponseExecMicrosのすべてのサブフィールドはマイクロ秒単位で報告されます。

metrics.queryExec

ドキュメント

literal

バージョン9.0の新機能。

クエリ実行に関連するメトリクス

metrics
.queryExec
.docsReturned

ドキュメント

literal

バージョン9.0で変更。

キー内のクエリによって返されたドキュメントの数を示します

metrics
.queryExec
.docsReturned
.sum

NumberLong

literal

指定されたキーを持つクエリによって返されたドキュメントの合計数

metrics
.queryExec
.docsReturned
.max

NumberLong

literal

指定されたキーを持つクエリによって返されるドキュメントの最大数

metrics
.queryExec
.docsReturned
.min

NumberLong

literal

指定されたキーを持つクエリによって返されたドキュメントの最小数

metrics
.queryExec
.docsReturned
.sumOfSquares

NumberDecimal

literal

キー内のクエリによって返されたドキュメント数の正方形の合計。

sumOfSquares値が高い場合は、個々のクエリ間で返されるドキュメント数の差異が大きいことを示します。

metrics
.queryExec
.keysExamined

ドキュメント

literal

クエリによって検査されたキーの数を示します

metrics
.queryExec
.keysExamined
.sum

整数

literal

検査されたキーの合計数

metrics
.queryExec
.keysExamined
.max

NumberLong

literal

検査されたキーの最大数

metrics
.queryExec
.keysExamined
.min

NumberLong

literal

検査されたキーの最小数

metrics
.queryExec
.keysExamined
.sumOfSquares

NumberDecimal

literal

検査されたキーの数の正方形の合計。

sumOfSquaresの値が高い場合は、個々のクエリで検査されるキーの数の分散が大きいことを示します。

metrics
.queryExec
.docsExamined

ドキュメント

literal

バージョン9.0で変更。

クエリによって検査されたドキュメントの数を示します

metrics
.queryExec
.docsExamined
.sum

整数

literal

クエリで検査されたドキュメントの合計数

metrics
.queryExec
.docsExamined
.max

NumberLong

literal

検査されたドキュメントの最大数

metrics
.queryExec
.docsExamined
.min

NumberLong

literal

検査されたドキュメントの最小数

metrics
.queryExec
.docsExamined
.sumOfSquares

NumberDecimal

literal

検査されたドキュメント数の正方形の合計。

sumOfSquaresの値が高い場合は、個々のクエリで検査されるドキュメント数の差異が大きいことを示します。

metrics
.queryExec
.bytesRead

ドキュメント

literal

バージョン9.0で変更。

クエリによって読み取られたバイト数について説明します

metrics
.queryExec
.bytesRead
.sum

整数

literal

クエリで読み取られた合計バイト数

metrics
.queryExec
.bytesRead
.max

NumberLong

literal

読み取られた最大バイト数

metrics
.queryExec
.bytesRead
.min

NumberLong

literal

読み取られた最小バイト数

metrics
.queryExec
.bytesRead
.sumOfSquares

NumberDecimal

literal

読み取ったバイト数の二乗和

metrics
.queryExec
.readTimeMicros

ドキュメント

literal

バージョン9.0で変更。

クエリの読み取り時間をマイクロ秒単位で記述します

metrics
.queryExec
.readTimeMicros
.sum

整数

literal

マイクロ秒単位でのクエリの合計読み取り時間

metrics
.queryExec
.readTimeMicros
.max

NumberLong

literal

クエリの最大読み取り時間(マイクロ秒)

metrics
.queryExec
.readTimeMicros
.min

NumberLong

literal

クエリの最小読み取り時間(マイクロ秒)

metrics
.queryExec
.readTimeMicros
.sumOfSquares

NumberDecimal

literal

クエリの読み取り時間の二乗和(マイクロ秒単位)

metrics
.queryExec
.delinquentAcquisitions

NumberLong

literal

バージョン9.0で変更。

クエリ操作が予想される実行チケットの取得時間を超えた回数。

metrics
.queryExec
.totalAcquisitionDelinquencyMillis

NumberLong

literal

バージョン9.0で変更。

クエリ操作が予想される実行チケットの取得時間を超えた合計時間(ミリ秒)。

metrics
.queryExec
.maxAcquisitionDelinquencyMillis

NumberLong

literal

バージョン9.0で変更。

クエリ操作が予想される実行チケットの取得時間を超えた最長時間(ミリ秒単位)。

metrics.lastExecutionMicros

NumberLong

literal

指定されたキーを持つすべてのクエリに対する最新のクエリの実行ランタイム

metrics.execCount

NumberLong

literal

指定されたキーを持つクエリが実行された回数

metrics.queryPlanner

ドキュメント

literal

バージョン9.0で変更。

クエリプランに関連するメトリクス

metrics
.queryPlanner
.hasSortStage

ドキュメント

literal

バージョン9.0で変更。

true と false の 2 つのフィールドを含むオブジェクト。各フィールドは、hasSortStage の値がそれぞれ true または false である一致するクエリの数をカウントします。

hasSortStage は、 MongoDB がカーソルからドキュメントを受け取った後にドキュメントをソートする必要がある場合、true です。

metrics
.queryPlanner
.usedDisk

ドキュメント

literal

バージョン9.0で変更。

true と false の 2 つのフィールドを含むオブジェクト。各フィールドは、usedDisk の値がそれぞれ true または false である一致するクエリの数をカウントします。

usedDisk は、メモリ制限によりクエリが一時ファイルにデータを書込む場合、true です。

metrics
.queryPlanner
fromMultiPlanner

ドキュメント

literal

バージョン9.0で変更。

true と false の 2 つのフィールドを含むオブジェクト。各フィールドは、fromMultiPlanner の値がそれぞれ true または false である一致するクエリの数をカウントします。

fromMultiPlanner クエリ プランナーがクエリの最適な実行プランを選択する前に複数のプランを評価する場合、は true です。

metrics
.queryPlanner
fromPlanCache

ドキュメント

literal

バージョン9.0で変更。

true と false の 2 つのフィールドを含むオブジェクト。各フィールドは、fromPlanCache の値がそれぞれ true または false である一致するクエリの数をカウントします。

fromPlanCache は、クエリ プランナーが プランキャッシュのプランを使用できる場合、true です。

metrics
.queryPlanner
.planShapeCounters

ドキュメント

literal

バージョン9.0の新機能。

Counts of the plan shapes that MongoDB selected for queries with the given key. For details, see Plan Shape Counters.

metrics
.queryPlanner
.planShapeCounters
.patterns

ドキュメント

literal

バージョン9.0の新機能。

勝利プランの全体的な形状の計数。各勝利プランは、最大1つのパスワードなしに一致します。

metrics
.queryPlanner
.planShapeCounters
.nodes

ドキュメント

literal

バージョン9.0の新機能。

ウィニングプランに表示されるプランステージのタイプのカウント。単一のウィニングプランが複数のノードカウンターに一致する場合があります。

metrics
.queryPlanner
.planShapeCounters
.accessPaths

ドキュメント

literal

バージョン9.0の新機能。

最適なプランで使用されるデータアクセスパスとインデックスの限界の数。単一の最適なプランが複数のアクセスパスカウンターと一致する場合があります。

metrics.writes

ドキュメント

literal

バージョン9.0で変更。

書き込み (write)に関連するメトリクス

metrics
.writes
nMatched

NumberLong

literal

バージョン9.0の新機能。

更新が選択するドキュメントの数

metrics
.writes
nUpserted

NumberLong

literal

バージョン9.0の新機能。

更新操作によって挿入されるドキュメントの数

metrics
.writes
nModified

NumberLong

literal

バージョン9.0の新機能。

更新操作によって変更されるドキュメントの数

metrics
.writes
nDeleted

NumberLong

literal

バージョン9.0の新機能。

削除操作によって削除されるドキュメントの数

metrics
.writes
nInserted

NumberLong

literal

バージョン9.0の新機能。

挿入操作によって挿入されるドキュメント数(アップサートを除く)

metrics
.writes
nUpdateOps

NumberLong

literal

バージョン9.0の新機能。

元の更新リクエストでの更新数

metrics.totalExecMicros

ドキュメント

literal

指定されたキーでクエリの実行に費やされた合計時間を説明します。 クエリでgetMoresが発生した場合、 totalExecMicrosにはgetMoreリクエストの処理に費やされた時間が含まれます。 totalExecMicrosにはクライアントの待機に費やされた時間は含まれません。

totalExecMicrosのすべてのサブフィールドはマイクロ秒単位で報告されます。

metrics
.totalExecMicros
.sum

NumberLong

literal

指定されたキーでクエリの実行に費やされた時間の合計

metrics
.totalExecMicros
.max

NumberLong

literal

指定されたキーでクエリの実行に費やされた最も長い時間

metrics
.totalExecMicros
.min

NumberLong

literal

指定されたキーでクエリの実行に費やされた最も短い時間

metrics
.totalExecMicros
.sumOfSquares

NumberDecimal

literal

指定されたキーを持つすべてのクエリの合計実行時間の正方形の合計。 sumOfSquares値が高い場合は、クエリ実行時間の分散が大きいことを示します。

metrics
.cursor
.firstResponseExecMicros
.sum

NumberLong

literal

クエリ処理の開始からサーバーが結果の最初のバッチを返すまでに費やされた時間の合計

metrics
.cursor
.firstResponseExecMicros
.max

NumberLong

literal

クエリ処理の開始からサーバーが結果の最初のバッチを返すまでに費やされた時間の最長

metrics
.cursor
.firstResponseExecMicros
.min

NumberLong

literal

クエリ処理の開始からサーバーが結果の最初のバッチを返すまでに費やされる最も短い時間

metrics
.cursor
.firstResponseExecMicros
.sumOfSquares

NumberDecimal

literal

クエリ処理の開始からサーバーが結果の最初のバッチを返すまでに費やされた時間の正方形の合計。

sumOfSquares値が高い場合は、クエリ処理時間の分散が大きいことを示します。

metrics.firstSeenTimestamp

日付

literal

前回の再起動以降、指定されたキーを持つクエリが最初に使用された時間

metrics.latestSeenTimestamp

日付

literal

指定されたキーを持つクエリが最後に使用された時間

metrics.workingTimeMillis

NumberLong

literal

ロックやフロー制御の待機時間など、意図的な一時停止を除く操作の実行時間。

metrics
.costBasedRanker

ドキュメント

literal

クエリの計画中に使用される CBR に関連するメトリクスを含みます。CBR は複数のクエリプランを評価し、推定コストに基づいて最も効率的なプランを選択します。

バージョン8.3.3の新機能。

metrics
.costBasedRanker
.nDocsSampled

ドキュメント

literal

指定されたキーを持つクエリのコストに基づくランキング中にサンプルされたドキュメントの数に関連するメトリクスが含まれます。

バージョン8.3.3の新機能。

metrics
.costBasedRanker
.nDocsSampled
.sum

NumberLong

literal

コストベースのランキング中にサンプルされたドキュメントの総数。

バージョン8.3.3の新機能。

metrics
.costBasedRanker
.nDocsSampled
.max

NumberLong

literal

コストベースランキング中にサンプルされるドキュメントの最大数。

バージョン8.3.3の新機能。

metrics
.costBasedRanker
.nDocsSampled
.min

NumberLong

literal

コストに基づいたランキング中にサンプルされるドキュメントの最小数。

バージョン8.3.3の新機能。

metrics
.costBasedRanker
.nDocsSampled
.sumOfSquares

NumberDecimal

literal

コストに基づいたランキング中にサンプルされたドキュメント数の平方和。

sumOfSquaresの値が高い場合は、個々のクエリでサンプルされるドキュメント数の差異が大きいことを示します。

バージョン8.3.3の新機能。

metrics
.costBasedRanker
.cardinalityEstimationMethods

ドキュメント

literal

コストに基づいたランキング中に使用された各濃度推定方法のカウントが含まれます。各フィールドは、特定の推定方法が使用された回数を表します。

バージョン8.3.3の新機能。

metrics
.costBasedRanker
.cardinalityEstimationMethods
.Histogram

NumberLong

literal

ヒストグラムに基づいた濃度推定が使用された回数。

バージョン8.3.3の新機能。

metrics
.costBasedRanker
.cardinalityEstimationMethods
.Sampling

NumberLong

literal

サンプリングに基づく濃度概算が使用された回数

バージョン8.3.3の新機能。

metrics
.costBasedRanker
.cardinalityEstimationMethods
.Heuristics

NumberLong

literal

ヒューリスティックに基づいた濃度推定が使用された回数。

バージョン8.3.3の新機能。

metrics
.costBasedRanker
.cardinalityEstimationMethods
.Mixed

NumberLong

literal

濃度推定に対する混合アプローチが使用された回数。

バージョン8.3.3の新機能。

metrics
.costBasedRanker
.cardinalityEstimationMethods
.Metadata

NumberLong

literal

メタデータに基づく濃度推定が使用された回数。

バージョン8.3.3の新機能。

metrics
.costBasedRanker
.cardinalityEstimationMethods
.Code

NumberLong

literal

コードに基づいた濃度推定が使用された回数。

バージョン8.3.3の新機能。

metrics
.cpuNanos

ドキュメント

literal

クエリ操作の CPU 使用率に関連するメトリクスが含まれています。このドキュメントは、 Linuxシステムでのみ使用できます。

バージョン8.2の新機能。

metrics
.cpuNanos
.sum

NumberLong

literal

クエリ操作に費やされた CPU 時間の合計 (ナノ秒単位)。このフィールドは、Linux システムでのみ使用できます。

バージョン8.2の新機能。

metrics
.cpuNanos
.max

NumberLong

literal

クエリ操作に費やされる CPU 時間の最大値(ナノ秒単位)。このフィールドは、Linux システムでのみ使用できます。

バージョン8.2の新機能。

metrics
.cpuNanos
.min

NumberLong

literal

クエリ操作に費やされた最小 CPU 時間 (ナノ秒単位)。このフィールドは、Linux システムでのみ使用できます。

バージョン8.2の新機能。

metrics
.cpuNanos
.sumOfSquares

NumberDecimal

literal

クエリ操作に費やされた CPU 時間の正方形の合計。このフィールドは、 Linuxシステムでのみ使用できます。

sumOfSquares の値が高い場合は、個々のクエリの CPU 時間の分散が大きいことを示します。

バージョン8.2の新機能。

metrics
.clusterPeakTrackedMemBytes

NumberLong

literal

クエリ実行中に問い合わせたすべてのリモートシャードからのピーク追跡メモリの合計と、ローカルピーク追跡メモリの合計。

バージョン9.0の新機能。

metrics
.peakTrackedMemBytes

NumberLong

literal

ローカルで追跡されたメモリ使用量のピーク。

バージョン9.0の新機能。

metrics
.planningTimeMicros

ドキュメント

literal

指定されたキーを持つクエリのクエリプランニング中に花された時間に関連するメトリクスが含まれます。planningTimeMicrosのすべてのサブフィールドはマイクロ秒単位で報告されます。

バージョン8.3の新機能。

metrics
.planningTimeMicros
.sum

NumberLong

literal

クエリプランニングの合計時間。

バージョン8.3の新機能。

metrics
.planningTimeMicros
.max

NumberLong

literal

クエリプランニングの最大時間。

バージョン8.3の新機能。

metrics
.planningTimeMicros
.min

NumberLong

literal

最小クエリ計画時間。

バージョン8.3の新機能。

metrics
.planningTimeMicros
.sumOfSquares

NumberDecimal

literal

クエリ プランニング時間の二乗和。

sumOfSquares の値が高い場合は、個別のクエリの計画時間の分散が大きいことを示します。

バージョン8.3の新機能。

metrics
.numInterruptChecksPerSec

NumberLong

literal

クエリ操作が1 秒あたりに checkForInterrupt を呼び出す回数。このメトリクスは、getMores を使用してクエリを複数のバッチで実行すると集計されます。

バージョン8.3の新機能。

metrics
.overdueInterruptApproxMaxMillis

NumberLong

literal

サンプリングされたクエリ操作のためにシステムによって checkForInterrupt が遅延した最大ミリ秒数。

バージョン8.3の新機能。

バージョン9.0の新機能。

metrics.queryPlanner.planShapeCounters ドキュメントには、指定されたキーを持つクエリに対して MongoDB が各プランシェイプを選択した頻度がレコードされます。これらのカウンターを使用して、ワークロードがどのクエリプランに最も依存しているかを学びます。

planShapeCounters 最大3つのサブドキュメントが含まれます。各サブドキュメントは、カウンター名をカウントにマッピングします。

サブドキュメント
説明

patterns

各ウィニングプランの全体的な形状をカウントします。パスワードなしは相互に排他的であるため、各クエリ実行でインクリメントされるパスワードなしカウンターは最大1つです。

nodes

各ウィニングプランに現れるプランステージのタイプをカウントします。ノードカウンターは相互に排他的ではないため、1回のクエリ実行で複数がインクリメントされる可能性があります。

accessPaths

各ウィニングプランが使用するデータアクセスパスとインデックスの限界をカウントします。アクセスパスカウンターは相互に排他的ではないため、1回のクエリ実行で複数のカウンターが増加する可能性があります。

各カウンターは、プランが対応するステージやアクセスパスを複数回使用する場合でも、クエリ実行ごとに最大で1つずつ増加します。例として、$orステージの下に1,000のブランチがあるプランでは、一致する$orノードカウンターが1,000ではなく1つ増加します。その結果、カウンターは各実行がステージを何回使用したかではなく、何回の実行がステージを使用したかをレコードします。

MongoDBは、カウントがゼロのカウンターを省略し、カウンターを含まないサブドキュメントを省略します。記録されたクエリのいずれもプラン形状カウンターを生成しなかった場合、MongoDBはplanShapeCountersドキュメント全体を省略します。例として、_idによって単一のドキュメントに一致するクエリは、追跡されたプラン形状と一致しない高速パスを使用するため、そのクエリ統計エントリにはplanShapeCountersドキュメントが含まれません。

MongoDBは、トップレベルのクエリに対してのみ、レコードのプラン形状カウンターを記録します。例として、MongoDBは$lookupステージの外部側のカウンターを記録しません。

各パスワードなしカウンター名は、アクセスパスステージから始まる、勝利プランのステージを順番にリストします。例として、ixscanFetchSortはインデックススキャンを使用し、一致するドキュメントをフェッチし、それらをソートする勝利プランをカウントします。

Pattern names describe plans at a coarse level. They omit limit and skip stages, and they don't distinguish whether a stage applies a filter or which type of projection a plan uses. To determine those details, combine a pattern counter with the nodes counters and the query shape for the entry.

patterns には、以下のカウンターを含めることができます。

アクセスパス
カウンター

コレクションスキャン

  • collscan

  • collscanProject

  • collscanProjectSort

  • collscanProjectSortProject

  • collscanSort

  • collscanSortProject

  • collscanSortProjectSort

フェッチを伴うインデックススキャン

  • ixscanFetch

  • ixscanFetchProject

  • ixscanFetchProjectSort

  • ixscanFetchProjectSortProject

  • ixscanFetchSort

  • ixscanFetchSortProject

  • ixscanFetchSortProjectSort

  • ixscanFetchSortMerge

  • ixscanFetchSortMergeProject

~によるインデックススキャン $or

  • ixscanFetchOr

  • ixscanFetchOrProject

  • ixscanFetchOrProjectSort

  • ixscanFetchOrSort

  • ixscanFetchOrSortProject

  • ixscanOrFetch

  • ixscanOrFetchProject

  • ixscanOrFetchProjectSort

  • ixscanOrFetchSort

  • ixscanOrFetchSortProject

  • ixscanOrProject

  • ixscanOrProjectSort

即時のフェッチを伴わないインデックススキャン

  • ixscanProject

  • ixscanProjectSort

  • ixscanProjectSortProject

  • ixscanSortFetch

  • ixscanSortFetchProject

  • ixscanSortMergeFetch

  • ixscanSortMergeFetchProject

  • ixscanSortMergeProject

MongoDB は、クエリ実行エンジンを選択した後にノードカウンターをレコードするため、カウンターにはスロットベースのエンジンにプッシュダウンされた集計ステージを表すプランステージが含まれます。

nodes には、以下のカウンターを含めることができます。

カウンター
説明

collscanNoFilter
collscanWithFilter

コレクションスキャンステージ。ステージがフィルターを適用するかどうかに基づいて個別にカウントされます。

ixscanNoFilter
ixscanWithFilter

インデックススキャンステージは、ステージがフィルターを適用するかどうかに基づいて個別にカウントされます。

fetchNoFilter
fetchWithFilter

フェッチステージ。ステージがフィルターを適用するかどうかに基づいて個別にカウントされます。

andHashNoFilter
andHashWithFilter

ハッシュされたインデックスの交差ステージ。フィルターを適用するかどうかによって個別にカウントされます。

andSorted

ソートされたインデックス交差ステージ。

orNoFilterLte100Children
orWithFilterLte100Children
orNoFilterGt100Children
orWithFilterGt100Children

$or ステージ。ステージがフィルターを適用するかどうか、およびステージが 100 個を超える子ステージを持つかどうかに基づいて個別にカウントされます。

sortMergeNoFilterLte100Children
sortMergeWithFilterLte100Children
sortMergeNoFilterGt100Children
sortMergeWithFilterGt100Children

ソートマージステージ。ステージがフィルターを適用するかどうか、およびステージが 100 個を超える子ステージを持つかどうかに基づいて個別にカウントされます。

returnKey

ドキュメントではなくインデックスキーを返すステージ。

shardingFilter

シャード上の孤立したドキュメントをフィルターで除外するステージ。

projectionDefault
projectionCovered
projectionSimple

プロジェクションタイプごとに個別にカウントされるプロジェクションステージ。

sortKeyGenerator

ソート用のソートキーを生成するステージ。

sortDefaultNoLimit
sortDefaultWithLimit
sortSimpleNoLimit
sortSimpleWithLimit

ソートステージ。ソートタイプ別、およびソートに制限があるかどうかで個別にカウントされます。

limitSmall
limitMedium
limitLarge

Limitステージ。limit値ごとに個別にカウントされます。limitSmallは100以下の制限をカウントし、limitMediumは101から10までの制限をカウントし、000、limitLargeは10を超える制限をカウントします000。

skipSmall
skipMedium
skipLarge

skip ステージ。skip 値によって個別にカウントされます。skipSmall は 100 以下のスキップをカウントし、skipMedium は 101 から 10 までのスキップをカウントし、000、skipLarge は 10 を超えるスキップをカウントします000。

textOr

テキスト検索の結果を結合するステージ。

match

Matchステージ。

replaceRoot

ドキュメントのルートを置き換えるステージ。

group

グループステージ。

eqLookupNoUnwind
eqLookupWithUnwind

等価ルックアップステージ。ステージが結果をアンワインドするかどうかに基づいて個別にカウントされます。

unpackTsBucket

時系列バケットを展開するステージ。

hashJoin
nlj
inlj
indexProbe

結合ステージ。結合アルゴリズム(ハッシュされた結合、ネストされたループ結合、インデックス付きネストされたループ結合、インデックスプローブ)ごとに個別にカウントされます。

accessPaths には、以下のカウンターを含めることができます。

カウンター
説明

collscan
clusteredCollscan

コレクションスキャン。スキャンでクラスター化インデックスを使用するかどうかに基づいて個別にカウントされます。

coveredIxscan

ドキュメントをフェッチしないインデックススキャン。

ixscanFetch

ドキュメントをフェッチするインデックススキャン。

countScan

ドキュメントを返さずにインデックスキーをカウントするスキャン。

distinctScan
distinctScanFetch

重複するインデックスキーをスキップするスキャン。スキャンがドキュメントをフェッチするかどうかに基づいて個別にカウントされます。

geoNear2d
geoNear2dSphere

地理空間近接検索。クエリが 2d インデックスを使用するか、2dsphere インデックスを使用するかによって個別にカウントされます。

textMatch

テキストインデックスを使用するテキスト検索。

otherAccessPath

コレクションスキャン、インデックススキャン、カウントスキャン、ディスティンクトスキャン、または地理空間アクセスパスを使用しない勝利プラン。テキスト検索のみを実行するプランは、textMatchとotherAccessPathの両方をインクリメントします。

btreeIxscan
wildcardIxscan
sparseIxscan
uniqueIxscan
hashedIxscan
multikeyIxscan

インデックススキャン。インデックスプロパティごとに個別にカウントされます。1回のインデックススキャンで、これらのカウンターの複数がインクリメントされる場合があります。

boundsFullScan
boundsPoint
boundsBoundedRange
boundsMinKeyToValue
boundsValueToMaxKey
boundsMixture

インデックススキャンは、スキャンが使用するインデックスの限界によって個別にカウントされます。MongoDB は、スキャンで複数の種類のバウンドを使用する場合、boundsMixture を増加します。

boundsUnionedSmall
boundsUnionedLarge

フィールドに複数の境界があるインデックススキャン。境界の数ごとに個別にカウントされます。boundsUnionedSmall は 2 から 50 の境界を持つフィールドをカウントし、boundsUnionedLarge は 51 以上の境界を持つフィールドをカウントします。

key.collectionTypeフィールドは、記録されたクエリが発行されたコレクションのタイプを示します。 collectionTypeは次のいずれかの値になります。

フィールド
説明

changeStream

collection

nonExistent

クエリは、存在しないコレクションに対して発行されました。

timeseries

view

virtual

クエリは仮想コレクションに対して発行されました。 仮想コレクションでは、次の操作が実行されます。

key.queryShapeドキュメントにはクエリシェイプフィールドが含まれています。 クエリシェイプの詳細については、「クエリシェイプ 」を参照してください。

key.queryShape のフィールドは、クエリ統計エントリを作成したコマンドによって異なります。$queryStats は、aggregate、find、distinct、count、update、insert、および delete コマンドのクエリ統計エントリを作成します。

各クエリシェイプ プロパティは、クエリ オプションに対応します。 たとえば、 key.queryShape.sortは、クエリシェイプのsort()仕様に対応します。

以下の表では、 findコマンドのクエリシェイプ プロパティを説明しています。

フィールド
タイプ
リテラルまたは正規化

key.queryShape.filter

ドキュメント

正規化

key.queryShape.sort

ドキュメント

literal

key.queryShape.projection

ドキュメント

正規化

key.queryShape.skip

整数

正規化

key.queryShape.limit

整数

正規化

key.queryShape.singleBatch

ブール値

literal

key.queryShape.max

ドキュメント

正規化

key.queryShape.min

ドキュメント

正規化

key.queryShape.returnKey

ブール値

literal

key.queryShape.showRecordId

ブール値

literal

key.queryShape.tailable

ブール値

literal

key.queryShape.oplogReplay

ブール値

literal

key.queryShape.awaitData

ブール値

literal

key.queryShape.collation

ドキュメント

literal

key.queryShape.allowDiskUse

ブール値

literal

key.queryShape.let

ドキュメント

正規化

以下の表では、 aggregateコマンドのクエリシェイプ プロパティを説明しています。

フィールド
タイプ
リテラルまたは正規化

key.queryShape.pipeline

配列

正規化

key.queryShape.explain

ブール値

literal

key.queryShape.allowDiskUse

ブール値

literal

key.queryShape.allowPartialResults

ブール値

literal

key.queryShape.collation

ドキュメント

literal

key.queryShape.hint

文字列またはドキュメント

正規化

key.queryShape.let

ドキュメント

正規化

以下の表では、 distinctコマンドのクエリシェイプ プロパティを説明しています。

フィールド
タイプ
リテラルまたは正規化

key.queryShape.collation

ドキュメント

正規化

key.queryShape.key

文字列

literal

key.queryShape.query

ドキュメント

正規化

以下の表では、 countコマンドのクエリシェイプ プロパティを説明しています。

フィールド
タイプ
リテラルまたは正規化

key.queryShape.collation

ドキュメント

正規化

key.queryShape.query

ドキュメント

正規化

key.queryShape.limit

整数

正規化

key.queryShape.skip

整数

正規化

バージョン9.0の新機能。

次の表は、update コマンドのクエリシェイプのプロパティについて説明しています。$queryStats は、最上位の update コマンド全体ではなく、updates 配列内の各更新ステートメントのクエリシェイプ統計を追跡する。

フィールド
タイプ
リテラルまたは正規化

key.queryShape.q

ドキュメント

正規化

key.queryShape.u

ドキュメントまたは配列

正規化

key.queryShape.c

ドキュメント

正規化

key.queryShape.arrayFilters

ドキュメントの配列

正規化

key.queryShape.multi

ブール値

literal

key.queryShape.upsert

ブール値

literal

key.queryShape.let

ドキュメント

正規化

key.queryShape.collation

ドキュメント

literal

重要

$queryStats 時系列コレクションでの update 操作のクエリシェイプ統計は収集されません。

バージョン9.0の新機能。

次の表は、insert コマンドのクエリシェイプのプロパティについて説明しています。$queryStatsは、documents配列内の各ドキュメントではなく、insertコマンド全体に対してクエリシェイプの統計を1回追跡します。MongoDBは、挿入されたドキュメントの数や内容に関係なく、常にdocumentsを固定のプレースホルダー値に正規化します。

フィールド
タイプ
リテラルまたは正規化

key.queryShape.documents

配列

正規化

重要

$queryStats 時系列コレクションでの insert 操作のクエリシェイプ統計は収集されません。

バージョン9.0の新機能。

次の表は、delete コマンドのクエリシェイプのプロパティについて説明しています。$queryStats は、最上位の delete コマンド全体ではなく、deletes 配列内の各削除ステートメントのクエリシェイプ統計を追跡します。

key.queryShape.limit 削除ステートメントの limit フィールドを反映します。0 は一致するすべてのドキュメントを削除し、1 は単一のドキュメントを削除します。クエリ統計エントリの数に上限はありません。

フィールド
タイプ
リテラルまたは正規化

key.queryShape.q

ドキュメント

正規化

key.queryShape.limit

整数

literal

key.queryShape.let

ドキュメント

正規化

key.queryShape.collation

ドキュメント

literal

重要

$queryStats 時系列コレクションでの delete 操作のクエリシェイプ統計は収集されません。

クエリ統計エントリには、クエリに関する追加情報を提供する metrics.supplementalMetricsドキュメントが含まれる場合があります。

If your query shape contains $vectorSearch, $queryStats outputs the following supplemental metrics:

フィールド
タイプ
説明

metrics
.supplementalMetrics
.vectorSearch

ドキュメント

$vectorSearch集計ステージに関する追加メトリクス

metrics
.supplementalMetrics
.vectorSearch
.limit

ドキュメント

$vectorSearch集計ステージの limit 値に関連するメトリクス

metrics
.supplementalMetrics
.vectorSearch
.numCandidatesLimitRatio

ドキュメント

$vectorSearch集計ステージの numCandidates 値に関連するメトリクス。$queryStats はこれらのメトリクスを、numCandidates を limit 値で割った比率として表します。

このセクションの例を実行するには、次のデータで を開始します。

db.products.insertMany(
[
{ item: "card", qty: 15 },
{ item: "envelope", qty: 20 },
{ item: "stamps" , qty: 30 }
]
)

次に、次のコマンドを実行します。

db.products.find( { item: "card" } )
db.products.aggregate( [
{
$match: { qty: { $gt: 20 } }
}
] )

次の例は、さまざまなタイプのデータ変換を使用した$queryStatsの出力を示しています。

次のセクションの例: $queryStats の出力は、他のコマンドの実行によって異なる場合があります。

入力:

db.getSiblingDB("admin").aggregate( [
{
$queryStats: { }
}
] )

出力:

[
{
key: {
queryShape: {
cmdNs: { db: 'test', coll: 'products' },
command: 'find',
filter: { item: { '$eq': '?string' } }
},
client: {
driver: { name: 'nodejs|mongosh', version: '5.1.0' },
os: {
type: 'Darwin',
name: 'darwin',
architecture: 'arm64',
version: '22.6.0'
},
platform: 'Node.js v16.19.1, LE (unified)',
version: '5.1.0|1.8.0',
application: { name: 'mongosh 1.8.0' }
},
collectionType: 'collection'
},
keyHash: 'dsoJ+LHAru0z6MJ1/IygJnnLTrlpVYYmPnlmNZbZrLI=',
queryShapeHash: "uxMLCvpiJ5N/IRqt4c28/0A8F01C8AA16CA805FF5C1A5737535F97E40C2A90CE91A82CCB7A74C7CCB9C48",
metrics: {
lastExecutionMicros: Long("4254"),
execCount: Long("1"),
totalExecMicros: {
sum: Long("4254"),
max: Long("4254"),
min: Long("4254"),
sumOfSquares: Decimal128("18096516")
},
firstResponseExecMicros: {
sum: Long("4254"),
max: Long("4254"),
min: Long("4254"),
sumOfSquares: Decimal128("18096516")
},
docsReturned: {
sum: Long("1"),
max: Long("1"),
min: Long("1"),
sumOfSquares: Decimal128("1")
},
planningTimeMicros: {
sum: Long("2150"),
max: Long("2150"),
min: Long("2150"),
sumOfSquares: Decimal128("4622500")
},
costBasedRanker: {
cardinalityEstimationMethods: {
Histogram: Long("0"),
Sampling: Long("0"),
Heuristics: Long("0"),
Mixed: Long("0"),
Metadata: Long("0"),
Code: Long("0")
},
nDocsSampled: {
sum: Long("0"),
max: Long("0"),
min: Long("0"),
sumOfSquares: Decimal128("0")
}
},
firstSeenTimestamp: ISODate("2023-09-14T12:30:27.989Z"),
latestSeenTimestamp: ISODate("2023-09-14T12:30:27.989Z")
},
asOf: Timestamp({ t: 1694695007, i: 0 })
},
{
key: {
queryShape: {
cmdNs: { db: 'test', coll: 'products' },
command: 'aggregate',
pipeline: [
{ '$match': { qty: { '$gt': '?number' } } }
]
},
apiVersion: '1',
client: {
driver: { name: 'nodejs|mongosh', version: '5.1.0' },
os: {
type: 'Darwin',
name: 'darwin',
architecture: 'arm64',
version: '22.6.0'
},
platform: 'Node.js v16.19.1, LE (unified)',
version: '5.1.0|1.8.0',
application: { name: 'mongosh 1.8.0' }
},
collectionType: 'collection',
cursor: { batchSize: '?number' }
},
keyHash: '2QLBfL0m1lliStdN4XvBjqVBtZQ6ffaB2L1pJ99twT8=',
queryShapeHash: "uxMLCvpiJ5N/IRqt4c28/0A8F01C8AA16CA805FF5C1A5737535F97E40C2A90CE91A82CCB7A74C7CCB9C48",
metrics: {
lastExecutionMicros: Long("350"),
execCount: Long("3"),
totalExecMicros: {
sum: Long("3084"),
max: Long("2499"),
min: Long("235"),
sumOfSquares: Decimal128("6422726")
},
firstResponseExecMicros: {
sum: Long("3084"),
max: Long("2499"),
min: Long("235"),
sumOfSquares: Decimal128("6422726")
},
docsReturned: {
sum: Long("3"),
max: Long("1"),
min: Long("1"),
sumOfSquares: Decimal128("3")
},
planningTimeMicros: {
sum: Long("1850"),
max: Long("850"),
min: Long("420"),
sumOfSquares: Decimal128("1252500")
},
costBasedRanker: {
cardinalityEstimationMethods: {
Histogram: Long("0"),
Sampling: Long("0"),
Heuristics: Long("0"),
Mixed: Long("0"),
Metadata: Long("0"),
Code: Long("0")
},
nDocsSampled: {
sum: Long("0"),
max: Long("0"),
min: Long("0"),
sumOfSquares: Decimal128("0")
}
},
firstSeenTimestamp: ISODate("2023-11-29T21:16:17.796Z"),
latestSeenTimestamp: ISODate("2023-11-29T21:17:12.385Z")
},
asOf: Timestamp({ t: 1701292827, i: 0 })
}
]

入力:

db.getSiblingDB("admin").aggregate( [
{
$queryStats: {
transformIdentifiers: {
algorithm: "hmac-sha-256" ,
hmacKey: BinData(8, "87c4082f169d3fef0eef34dc8e23458cbb457c3sf3n2")
}
}
}
] )

出力:

[
{
key: {
queryShape: {
cmdNs: {
db: 'Mtrt3iG7dsX5c5uCSIhSVlcu5qD3u3xx2EQnS1dJLxM=',
coll: '3oJE6AyOuf8h5NqWiXETxulFlPm3QUXbMnMjL2EqAU4='
},
command: 'find',
filter: {
'VWVRow7Ure92ajRPfrpWiU8OtDeWcLePFIq0+tooBng=': { '$eq': '?string' }
}
},
client: {
driver: { name: 'nodejs|mongosh', version: '5.1.0' },
os: {
type: 'Darwin',
name: 'darwin',
architecture: 'arm64',
version: '22.6.0'
},
platform: 'Node.js v16.19.1, LE (unified)',
version: '5.1.0|1.8.0',
application: { name: 'mongosh 1.8.0' }
},
collectionType: 'collection'
},
keyHash: 'q4vxam+wbk8tTrl8D0MDFH1LQAbI8fWspfkGKhEUROk=',
queryShapeHash: "uxMLCvpiJ5N/IRqt4c28/0A8F01C8AA16CA805FF5C1A5737535F97E40C2A90CE91A82CCB7A74C7CCB9C48",
metrics: {
lastExecutionMicros: Long("4254"),
execCount: Long("1"),
keysExamined: {
sum: Int("5"),
max: Long("5"),
min: Long("5"),
sumOfSquares: Decimal128("25")
},
docsExamined: {
sum: Long("1"),
max: Long("1"),
min: Long("1"),
sumOfSquares: Decimal128("1")
},
hasSortStage: {true: Long("0"), false: Long("1")},
usedDisk: {true: Long("0"), false: Long("1")},
fromMultiPlanner: {true: Long("0"), false: Long("1")},
fromPlanCache: {true: Long("1"), false: Long("0")},
totalExecMicros: {
sum: Long("4254"),
max: Long("4254"),
min: Long("4254"),
sumOfSquares: Decimal128("18096516")
},
firstResponseExecMicros: {
sum: Long("4254"),
max: Long("4254"),
min: Long("4254"),
sumOfSquares: Decimal128("18096516")
},
docsReturned: {
sum: Long("1"),
max: Long("1"),
min: Long("1"),
sumOfSquares: Decimal128("1")
},
planningTimeMicros: {
sum: Long("2150"),
max: Long("2150"),
min: Long("2150"),
sumOfSquares: Decimal128("4622500")
},
costBasedRanker: {
cardinalityEstimationMethods: {
Histogram: Long("0"),
Sampling: Long("0"),
Heuristics: Long("0"),
Mixed: Long("0"),
Metadata: Long("0"),
Code: Long("0")
},
nDocsSampled: {
sum: Long("0"),
max: Long("0"),
min: Long("0"),
sumOfSquares: Decimal128("0")
}
},
firstSeenTimestamp: ISODate("2023-09-14T12:30:27.989Z"),
latestSeenTimestamp: ISODate("2023-09-14T12:30:27.989Z")
},
asOf: Timestamp({ t: 1694695712, i: 0 })
},
{
key: {
queryShape: {
cmdNs: {
db: 'Mtrt3iG7dsX5c5uCSIhSVlcu5qD3u3xx2EQnS1dJLxM=',
coll: '3oJE6AyOuf8h5NqWiXETxulFlPm3QUXbMnMjL2EqAU4='
},
command: 'aggregate',
pipeline: [
{
'$match': {
'RVqrwNEPotzdKnma/T7s4YcgNvpqO29BMDoni2N4IMI=': { '$gt': '?number' }
}
}
]
},
apiVersion: '1',
client: {
driver: { name: 'nodejs|mongosh', version: '5.1.0' },
os: {
type: 'Darwin',
name: 'darwin',
architecture: 'arm64',
version: '22.6.0'
},
platform: 'Node.js v16.19.1, LE (unified)',
version: '5.1.0|1.8.0',
application: { name: 'mongosh 1.8.0' }
},
collectionType: 'collection',
cursor: { batchSize: '?number' }
},
keyHash: 'HEhpQTYB+/wVoHLkOkMd+EC2jguQlMJ1N/vTE7+b8Js=',
queryShapeHash: "uxMLCvpiJ5N/IRqt4c28/0A8F01C8AA16CA805FF5C1A5737535F97E40C2A90CE91A82CCB7A74C7CCB9C48",
metrics: {
lastExecutionMicros: Long("350"),
execCount: Long("3"),
keysExamined: {
sum: Int("5"),
max: Long("5"),
min: Long("5"),
sumOfSquares: Decimal128("25")
},
docsExamined: {
sum: Long("1"),
max: Long("1"),
min: Long("1"),
sumOfSquares: Decimal128("1")
},
hasSortStage: {true: Long("0"), false: Long("1")},
usedDisk: {true: Long("0"), false: Long("1")},
fromMultiPlanner: {true: Long("0"), false: Long("1")},
fromPlanCache: {true: Long("1"), false: Long("0")},
totalExecMicros: {
sum: Long("3084"),
max: Long("2499"),
min: Long("235"),
sumOfSquares: Decimal128("6422726")
},
firstResponseExecMicros: {
sum: Long("3084"),
max: Long("2499"),
min: Long("235"),
sumOfSquares: Decimal128("6422726")
},
docsReturned: {
sum: Long("3"),
max: Long("1"),
min: Long("1"),
sumOfSquares: Decimal128("3")
},
planningTimeMicros: {
sum: Long("1850"),
max: Long("850"),
min: Long("420"),
sumOfSquares: Decimal128("1252500")
},
costBasedRanker: {
cardinalityEstimationMethods: {
Histogram: Long("0"),
Sampling: Long("0"),
Heuristics: Long("0"),
Mixed: Long("0"),
Metadata: Long("0"),
Code: Long("0")
},
nDocsSampled: {
sum: Long("0"),
max: Long("0"),
min: Long("0"),
sumOfSquares: Decimal128("0")
}
},
firstSeenTimestamp: ISODate("2023-11-29T21:16:17.796Z"),
latestSeenTimestamp: ISODate("2023-11-29T21:17:12.385Z")
},
asOf: Timestamp({ t: 1701293302, i: 0 })
},
]

MongoDB Atlas は定期的に$queryStatsを使用してクエリに関する匿名化データを収集し、MongoDB 製品の改善に役立ちます。 データは、使用状況に基づいて機能の提案を作成する目的でも使用される場合があります。 MongoDB は$queryStatsで収集したデータを 4 年間保持します。

Atlas が配置で$queryStatsを実行する場合、Atlas 組織ごとに一意の HMAC キーを使用してデータを変換し、機密情報の収集を回避します。