정의
- $collStats
- 버전 3.4에 새로 추가되었습니다. - 단계 또는 뷰에 관한 통계를 반환합니다. - $collStats단계의 프로토타입 형식은 다음과 같습니다.- { - $collStats: - { - latencyStats: { histograms: <boolean> }, - storageStats: { scale: <number> }, - count: {}, - queryExecStats: {} - } - } - $collStats단계는 다음과 같은 선택적 필드가 있는 인수 문서를 허용합니다.필드 이름설명- latencyStats- 반환 문서 에 지연 시간통계를 추가합니다. - latencyStats.histograms- true인 경우- latencyStats에 내장된 문서에 지연 시간 히스토그램 정보를 추가합니다.- storageStats- 반환 문서 에 저장 통계를 추가합니다. - 빈 문서(예: - storageStats: {})를 지정하여 다양한 크기의 데이터에 기본 배율 인수 1을 사용합니다. 배율이 1이면 반환된 크기를 바이트 단위로 표시합니다.
- 배율 인수(예시: - storageStats: { scale: <number> })를 지정하여 다양한 크기 데이터에 지정된 배율인수를 사용합니다. 예를 들어 바이트가 아닌 킬로바이트를 표시하려면 1024의 배율 값을 지정합니다.- 정수가 아닌 배율 인수를 지정하면 MongoDB는 지정된 인수의 정수 부분을 사용합니다. 예를 들어, 배율 인수를 - 1023.999으로 지정하면 MongoDB는 배율 인수로- 1023을 사용합니다.- 배율 인수는 - "bytes currently in the cache"와 같이 필드 이름에 측정 단위를 지정하는 크기에 영향을 주지 않습니다.
 - count- 컬렉션의 총 문서 수를 반환 문서에 추가합니다. - 카운트는 샤딩된 클러스터에 대해 빠르지만 때로는 부정확한 카운트를 제공하는 컬렉션의 메타데이터를 기반으로 합니다. - count필드참조- 버전 3.6에 새로 추가되었습니다. - queryExecStats- 반환 문서 에 쿼리 실행 통계를 추가합니다. - 복제본 세트의 컬렉션 또는 클러스터의 샤딩되지 않은 컬렉션의 경우 - $collStats는 단일 문서를 출력합니다. 샤드 컬렉션의 경우- $collStats는 샤드당 하나의 문서를 출력합니다. 출력 문서에는 다음 필드가 포함됩니다.필드 이름설명- ns- 요청된 컬렉션 또는 뷰의 네임스페이스입니다. - shard- 출력 문서에 해당하는 샤드의 이름입니다. - $collStats가 샤딩된 클러스터에서 실행되는 경우에만 표시됩니다. 샤드 컬렉션과 샤딩되지 않은 컬렉션 모두 이 필드를 생성합니다.- 버전 3.6에 새로 추가되었습니다. - host- 출력 문서를 생성한 - mongod프로세스의 호스트 이름과 포트입니다.- 버전 3.6에 새로 추가되었습니다. - localTime- 유닉스 시간부터 UTC 밀리초로 표시된 MongoDB Server의 현재 시간입니다. - latencyStats- 컬렉션 또는 뷰의 요청 지연 시간 과 관련된 통계입니다. 이 문서 에 대한 자세한 - latencyStats내용은 문서를 참조하세요.- latencyStats: {}옵션이 지정된 경우에만 표시됩니다.- storageStats- 컬렉션의 스토리지 엔진 과 관련된 통계입니다. 이 문서 에 대한 자세한 - storageStats내용은 문서를 참조하세요.- 다양한 크기 데이터는 지정된 요인에 따라 조정됩니다(필드 이름에 측정 단위를 지정하는 크기 제외). - storageStats옵션이 지정된 경우에만 표시됩니다.- 뷰에 적용된 경우 오류를 반환합니다. - count- 컬렉션의 총 문서 수입니다. 이 데이터는 - storageStats.count에서도 사용할 수 있습니다.- 카운트는 샤딩된 클러스터에 대해 빠르지만 때로는 부정확한 카운트를 제공하는 컬렉션의 메타데이터를 기반으로 합니다. - count: {}옵션이 지정된 경우에만 표시됩니다. 뷰에 적용된 경우 오류를 반환합니다.- queryExecStats- 컬렉션에 대한 쿼리 실행과 관련된 통계입니다. - queryExecStats: {}옵션이 지정된 경우에만 표시됩니다. 뷰에 적용된 경우 오류를 반환합니다.
행동
$collStats 집계 파이프라인의 첫 번째 단계여야 합니다. 그렇지 않으면 파이프라인이 오류를 반환합니다.
트랜잭션
$collStats 은(는) 거래에서 허용되지 않습니다.
latencyStats 문서
latencyStats 옵션을 지정한 경우에만 latencyStats 내장된 문서가 출력에 존재합니다.
| 필드 이름 | 설명 | 
|---|---|
| 
 | 읽기 요청에 대한 지연 시간 통계입니다. | 
| 
 | 쓰기 요청에 대한 지연 시간 통계입니다. | 
| 
 | 데이터베이스 명령에 대한 지연 시간 통계입니다. | 
이러한 각 필드에는 다음 필드가 포함된 내장된 문서가 포함되어 있습니다.
| 필드 이름 | 설명 | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 
 | 총 결합된 지연 시간을 마이크로초 단위로 제공하는 64비트 정수입니다. | |||||||||||||
| 
 | 시작 이후 컬렉션에 대해 수행된 총 작업 수를 제공하는 64비트 정수입니다. | |||||||||||||
| 
 | 각각 지연 시간 범위 를 나타내는 내장된 문서의 배열 입니다. 각 문서 는 이전 문서 범위 의 두 배를 다룹니다. 2048 마이크로초에서 약 1 초 사이의 낮은 값의 경우 히스토그램에 반단계가 포함됩니다. 이 필드는  각 문서에는 다음과 같은 필드가 포함되어 있습니다. 
 예를 들어  이는 다음이 있었음을 나타냅니다: 
 | 
| [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)       }     } } 
지연 $lookup 시간이 긴 작업
지연 시간이 긴 일부 $lookup 작업은 외부 컬렉션 에 대한 느린 쿼리 로그 생성하지 않을 수 있습니다. 이는 느린 쿼리 로그가 데이터베이스 프로파일러 에 보고된 작업에 해당하는 반면 지연 시간 지표 컬렉션 락 획득할 때만 증가하기 때문에 발생할 수 있습니다.
샤드 의 $lookup 쿼리 로컬 읽기를 수행할 수 있는 경우 $lookup 는 외부 컬렉션 쿼리하기 위한 별도의 작업을 기록 하지 않습니다. 로컬 읽기는 외부 컬렉션 에 대한 쿼리 현재 작업이 실행 중인 동일한 샤드 만을 대상으로 하는 경우를 나타냅니다. 결과적으로 $lookup 작업은 $collStats 지연 시간 지표 와 작업 횟수를 증가시키지만 외부 컬렉션 에 대한 느린 쿼리 로그 생성하지는 않습니다.
storageStats 문서
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 를 수행하면 오류가 발생합니다.
count 필드
버전 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 옵션을 지정한 경우에만 queryExecStats 내장된 문서가 출력에 존재합니다.
collectionScans 필드에는 다음 필드가 포함된 내장된 문서가 포함되어 있습니다.
| 필드 이름 | 설명 | 
|---|---|
| 
 | collection 스캔을 수행한 총 쿼리 수를 제공하는 64비트 정수입니다. 이 총합은 테일 커서( tailable cursor)를 사용한 쿼리와 사용하지 않은 쿼리로 구성됩니다. | 
| 
 | 
예를 들어 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 샤드 컬렉션에서
$collStats 샤드 컬렉션에서 실행할 때 샤드당 하나의 문서를 출력합니다. 각 출력 문서에는 문서에 해당하는 샤드 이름이 포함된 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 }