Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

$collStats(集計)

項目一覧

  • 定義
  • 動作
$collStats

バージョン 3.4 で追加

コレクションまたはビューに関する統計情報を返します。

$collStatsステージのプロトタイプ形式は次のとおりです。

{
$collStats:
{
latencyStats: { histograms: <boolean> },
storageStats: { scale: <number> },
count: {},
queryExecStats: {}
}
}

$collStatsステージは、次の任意フィールドを持つ 引数ドキュメントを受け入れます。

フィールド名
説明
latencyStats
返されるドキュメントにレイテンシ統計を追加します。
latencyStats.histograms
の場合、 の埋め込みドキュメントにレイテンシ ヒストグラム情報を追加します。latencyStatstrue
storageStats

返されるドキュメントにストレージ統計を追加します。

  • 空のドキュメント(つまり storageStats: {} )を使用して、さまざまなサイズ データに対してデフォルトのスケール係数 1 を使用します。 スケール係数 1 では、返されたサイズがバイト単位で表示されます。

  • スケール係数を指定します( storageStats: { scale: <number> } )を使用して、さまざまなサイズ データに対して指定されたスケール係数を使用します。 たとえば、バイトではなくキロバイトを表示するには、1024のスケール値を指定します。

    整数以外のスケール係数を指定した場合、MongoDB は指定された係数の整数部分を使用します。たとえば、スケール係数を 1023.999 に指定すると、MongoDB はスケール係数として 1023 使用します。

    スケール係数は、フィールド名に測定単位が指定されているサイズには影響しません(例: "bytes currently in the cache"

count

コレクション内のドキュメントの合計数を返されるドキュメントに追加します。

カウントはコレクションのメタデータに基づいています。これにより、シャーディングされたクラスターに対して高速ではあるが不正確なカウントが提供されることもあります。

countフィールドを参照

バージョン 3.6 の新機能

queryExecStats
返されるドキュメントにクエリ実行統計を追加します。

レプリカセット内のコレクション、またはクラスター内ののシャーディングされていないコレクションの場合、 $collStatsは 1 つのドキュメントを出力します。 シャーディングされたコレクションの場合、 $collStatsはシャードごとに 1 つのドキュメントを出力します。 出力ドキュメントには、次のフィールドが含まれます。

フィールド名
説明
ns
要求されたコレクションまたはビューの名前空間
shard

出力ドキュメントが対応するシャードの名前。

$collStatsがシャーディングされたクラスターで実行されている場合にのみ存在します。 シャーディングされたコレクションとシャーディングされていないコレクションの両方でこのフィールドが生成されます。

バージョン 3.6 の新機能

host

出力ドキュメントを生成したmongodプロセスのホスト名とポート。

バージョン 3.6 の新機能

localTime
MongoDB サーバー上の現在時刻( UNIX エポックからの UTC ミリ秒で表示)。
latencyStats

コレクションまたはビューのリクエスト レイテンシに関連する統計情報。 このドキュメントの詳細については、 latencyStatsドキュメントを参照してください。

latencyStats: {}オプションが指定されている場合にのみ存在します。

storageStats

コレクションのストレージ エンジンに関連する統計情報。 このドキュメントの詳細については、 storageStatsドキュメントを参照してください。

各種サイズデータは指定された係数でスケーリングされます(フィールド名に測定単位が指定されているサイズを除く)。

storageStatsオプションが指定されている場合にのみ存在します。

ビューに適用されると、エラーを返します。

count

コレクション内のドキュメントの合計数。 このデータはstorageStats.countでも利用できます。

カウントはコレクションのメタデータに基づいています。これにより、シャーディングされたクラスターに対して高速ではあるが不正確なカウントが提供されることもあります。

count: {}オプションが指定されている場合にのみ存在します。 ビューに適用されると、エラーを返します。

queryExecStats

コレクションのクエリ実行に関連する統計。

queryExecStats: {}オプションが指定されている場合にのみ存在します。 ビューに適用されると、エラーを返します。

$collStats は、集計パイプラインの最初のステージである必要があります。そうでない場合、パイプラインはエラーを返します。

$collStats トランザクションでは許可されていません。

latencyStats埋め込みドキュメントは、 latencyStatsオプションを指定した場合にのみ出力に存在します。

フィールド名
説明
reads
読み取りリクエストのレイテンシ統計
writes
書込み (write) リクエストのレイテンシ統計
commands
データベースコマンドのレイテンシ統計

これらの各フィールドには、次のフィールドを含む埋め込みドキュメントが含まれています。

フィールド名
説明
latency
合計レイテンシをマイクロ秒単位で示す 64 ビットの整数。
ops
起動以降にコレクションで実行された操作の合計数を示す 64 ビットの整数。
histogram

それぞれがレイテンシ範囲を表す埋め込みドキュメントの配列。 各ドキュメントは、前のドキュメントの範囲の 2 倍をカバーします。 2048マイクロ秒から約1秒の間の低い値の場合、ヒストグラムには半ステップが含まれます。

このフィールドは、 latencyStats: { histograms: true }オプションでのみ存在します。 ゼロのcountがある空の範囲は出力から省略されます。

各ドキュメントには、次のフィールドが含まれます。

フィールド名
説明
micros

現在のレイテンシ範囲の包括的下限をマイクロ秒単位で提供する64ビット整数。

ドキュメントの範囲は、前のドキュメントのmicros値(排他的)とこのドキュメントのmicros値(包括的)の間です。

count
レイテンシがmicros以下の操作の数を表す 64 ビットの整数。

たとえば、 collStatsが次のヒストグラムを返す場合、次のようになります。

histogram: [
{ micros: NumberLong(0), count: NumberLong(10) },
{ micros: NumberLong(2), count: NumberLong(1) },
{ micros: NumberLong(4096), count: NumberLong(1) },
{ micros: NumberLong(16384), count: NumberLong(1000) },
{ micros: NumberLong(49152), count: NumberLong(100) }
]

これは、次のことがあったことを示しています。

  • マイクロ秒以下を使用する10 操作2

  • 範囲 [ 2 、 4 )マイクロ秒の1操作

  • 範囲 [ 4096 、 6144 )マイクロ秒の1操作

  • 範囲 [ 16384 、 24576 )マイクロ秒の1000操作

  • 範囲 [ 49152 、 65536 )マイクロ秒の100操作

[1]
  • このページの(記号表記は、値が排他的であることを意味します。
  • このページの]記号表記は、値が包括的であることを意味します。

たとえば、 matricesコレクションでlatencyStats: {}オプションとともに$collStatsを実行すると、次のようになります。

db.matrices.aggregate( [ { $collStats: { latencyStats: { histograms: true } } } ] )

このクエリは、次のような結果を返します。

{ "ns" : "test.matrices",
"host" : "mongo.example.net:27017",
"localTime" : ISODate("2017-10-06T19:43:56.599Z"),
"latencyStats" :
{ "reads" :
{ "histogram" : [
{ "micros" : NumberLong(16),
"count" : NumberLong(3) },
{ "micros" : NumberLong(32),
"count" : NumberLong(1) },
{ "micros" : NumberLong(128),
"count" : NumberLong(1) } ],
"latency" : NumberLong(264),
"ops" : NumberLong(5) },
"writes" :
{ "histogram" : [
{ "micros" : NumberLong(32),
"count" : NumberLong(1) },
{ "micros" : NumberLong(64),
"count" : NumberLong(3) },
{ "micros" : NumberLong(24576),
"count" : NumberLong(1) } ],
"latency" : NumberLong(27659),
"ops" : NumberLong(5) },
"commands" :
{ "histogram" : [
{
"micros" : NumberLong(196608),
"count" : NumberLong(1)
}
],
"latency" : NumberLong(0),
"ops" : NumberLong(0) },
"transactions" : {
"histogram" : [ ],
"latency" : NumberLong(0),
"ops" : NumberLong(0)
}
}
}

storageStats埋め込みドキュメントは、 storageStatsオプションを指定した場合にのみ出力に存在します。

このドキュメントの内容は、使用しているストレージ エンジンによって異なります。 このドキュメントの参照については出力を参照してください。

たとえば、 WiredTiger ストレージ エンジンを使用して、 matricesコレクションでstorageStats: {}オプションとともに$collStatsを実行した場合、次のようになります。

db.matrices.aggregate( [ { $collStats: { storageStats: { } } } ] )

このクエリは、次のような結果を返します。

{
"ns" : "test.matrices",
"host" : "mongo.example.net:27017",
"localTime" : ISODate("2020-03-06T01:44:57.437Z"),
"storageStats" : {
"size" : 608500363,
"count" : 1104369,
"avgObjSize" : 550,
"storageSize" : 352878592,
"freeStorageSize" : 2490380,
"capped" : false,
"wiredTiger" : {
...
},
"nindexes" : 2,
"indexDetails" : {
...
},
"indexBuilds" : [ // Starting in MongoDB 4.2
"_id_1_abc_1"
],
"totalIndexSize" : 260337664,
"totalSize" : 613216256,
"indexSizes" : {
"_id_" : 9891840,
"_id_1_abc_1" : 250445824
},
"scaleFactor" : 1 // Starting in MongoDB 4.2
}
}

このドキュメントの参照については出力を参照してください。

注意

進行中のインデックス

MongoDB 4.2 以降では、返されるstorageStatsにビルド中のインデックスに関する情報が含まれるようになりました。 詳細については、「 」を参照してください。

ビューstorageStatsオプションを使用して$collStatsを実行すると、エラーが発生します。

バージョン 3.6 の新機能

countフィールドは、 countオプションを指定した場合にのみ出力に存在します。

たとえば、 matricesコレクションでcount: {}オプションとともに$collStatsを実行すると、次のようになります。

db.matrices.aggregate( [ { $collStats: { count: { } } } ] )

このクエリは、次のような結果を返します。

{
"ns" : "test.matrices",
"host" : "mongo.example.net:27017",
"localTime" : ISODate("2017-10-06T19:43:56.599Z"),
"count" : 1103869
}

注意

カウントはコレクションのメタデータに基づいています。これにより、シャーディングされたクラスターに対して高速ではあるが不正確なカウントが提供されることもあります。

コレクション内のドキュメントの合計数は、 storageStats: {}が指定されている場合はstorageStats.countとして使用することもできます。 詳細については、 storageStatsドキュメントを参照してください。

queryExecStats埋め込みドキュメントは、 queryExecStatsオプションを指定した場合にのみ出力に存在します。

collectionScansフィールドには、次のフィールドを含む埋め込みドキュメントが含まれています。

たとえば、 matricesコレクションでqueryExecStats: {}オプションとともに$collStatsを実行すると、次のようになります。

db.matrices.aggregate( [ { $collStats: { queryExecStats: { } } } ] )

このクエリは、次のような結果を返します。

{
"ns": "test.matrices",
"host": "mongo.example.net:27017",
"localTime": ISODate("2020-06-03T14:23:29.711Z"),
"queryExecStats": {
"collectionScans": {
"total": NumberLong(33),
"nonTailable": NumberLong(31)
}
}
}

$collStats は、 シャーディングされたコレクションで実行されると、シャードごとに 1 つのドキュメントを出力します。 各出力ドキュメントには、ドキュメントが対応するシャードの名前を含むshardフィールドが含まれています。

たとえば、 matricesという名前のコレクションでcount: {}オプションを使用してシャーディングされたコレクションで$collStatsを実行すると、次の動作につながります。

db.matrices.aggregate( [ { $collStats: { count: { } } } ] )

このクエリは、次のような結果を返します。

{
"ns" : "test.matrices",
"shard" : "s1",
"host" : "s1-mongo1.example.net:27017",
"localTime" : ISODate("2017-10-06T15:14:21.258Z"),
"count" : 661705
}
{
"ns" : "test.matrices",
"shard" : "s2",
"host" : "s2-mongo1.example.net:27017",
"localTime" : ISODate("2017-10-06T15:14:21.258Z"),
"count" : 442164
}

Tip

以下も参照してください。

戻る

$changeStream

項目一覧