$collStats (집계)
정의
$collStats
단계 또는 뷰에 관한 통계를 반환합니다.
$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
필드를 참조하세요queryExecStats
반환 문서에 쿼리 실행 통계를 추가합니다.복제본 세트 의 컬렉션 또는 클러스터 의 샤딩되지 않은 컬렉션 의 경우
$collStats
는 단일 문서 를 출력합니다. 샤딩된 컬렉션 의 경우$collStats
은 샤드 당 하나의 문서 를 출력합니다. 출력 문서 에는 다음 필드가 포함됩니다.필드 이름설명ns
요청된 컬렉션 또는 뷰의 네임스페이스입니다.shard
출력 문서에 해당하는 샤드의 이름입니다.
$collStats
가 샤딩된 클러스터에서 실행되는 경우에만 표시됩니다. 샤드 컬렉션과 샤딩되지 않은 컬렉션 모두 이 필드를 생성합니다.host
출력 문서를 생성한mongod
프로세스의 호스트 이름과 포트입니다.localTime
유닉스 시간부터 UTC 밀리초로 표시된 MongoDB Server의 현재 시간입니다.latencyStats
컬렉션 또는 뷰에 대한 요청 지연 시간과 관련된 통계입니다.
latencyStats
문서에서 이 문서에 대한 자세한 내용을 확인하세요.latencyStats: {}
옵션이 지정된 경우에만 표시됩니다.storageStats
컬렉션의 스토리지 엔진과 관련된 통계입니다.
storageStats
문서에서 이 문서에 대한 자세한 내용을 확인하세요.다양한 크기 데이터는 지정된 요인에 따라 조정됩니다(필드 이름에 측정 단위를 지정하는 크기 제외).
storageStats
옵션이 지정된 경우에만 표시됩니다.뷰에 적용된 경우 오류를 반환합니다.
count
컬렉션의 총 문서 수입니다. 이 데이터는
storageStats.count
에서도 사용할 수 있습니다.카운트는 샤딩된 클러스터에 대해 빠르지만 때로는 부정확한 카운트를 제공하는 컬렉션의 메타데이터를 기반으로 합니다.
count: {}
옵션이 지정된 경우에만 표시됩니다. 뷰에 적용된 경우 오류를 반환합니다.queryExecStats
컬렉션에 대한 쿼리 실행과 관련된 통계입니다.
queryExecStats: {}
옵션이 지정된 경우에만 표시됩니다. 뷰에 적용된 경우 오류를 반환합니다.
행동
$collStats
집계 파이프라인의 첫 번째 단계여야 합니다. 그렇지 않으면 파이프라인이 오류를 반환합니다.
예기치 않은 종료 후 정확도
Wired Tiger 스토리지 엔진 을 사용하여 mongod
를 비정상적으로 종료한 후 에서 보고한 크기 및 개수 통계가 $collStats
부정확할 수 있습니다.
편차의 정도는 마지막 체크포인트와 비정상 종료 사이에 수행된 삽입, 업데이트 또는 삭제 작업의 수에 따라 달라집니다. 체크포인트는 보통 60초마다 발생합니다. 그러나mongod
기본값이 아닌 --syncdelay
설정으로 실행되는 인스턴스는 체크포인트가 다소 빈번하게 발생할 수 있습니다.
mongod
의 각 컬렉션에서 validate
를 실행하여 비정상 종료 후 통계를 복원합니다.
비정상 종료 후
편집
Queryable Encryption을 사용하는 경우 $collStats
출력은 암호화된 컬렉션의 특정 정보를 삭제합니다.
출력은 다음을 생략합니다.
"queryExecStats"
출력은 다음을 생략합니다.
"latencyStats"
출력은
"WiredTiger"
(있는 경우)를 삭제하여url
필드만 포함합니다.
트랜잭션
$collStats
은(는) 거래에서 허용되지 않습니다.
latencyStats
문서
latencyStats
옵션을 지정한 경우에만 latencyStats
내장된 문서가 출력에 존재합니다.
필드 이름 | 설명 |
---|---|
reads | 읽기 요청에 대한 지연 시간 통계입니다. |
writes | 쓰기 요청에 대한 지연 시간 통계입니다. |
commands | 데이터베이스 명령에 대한 지연 시간 통계입니다. |
transactions | 데이터베이스 트랜잭션에 대한 지연 시간 통계입니다. |
이러한 각 필드에는 다음 필드가 포함된 내장된 문서가 포함되어 있습니다.
필드 이름 | 설명 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
latency | 총 결합된 지연 시간을 마이크로초 단위로 제공하는 64비트 정수입니다. | |||||||||||||
ops | 시작 이후 컬렉션에 대해 수행된 총 작업 수를 제공하는 64비트 정수입니다. | |||||||||||||
histogram | 각각 지연 시간 범위 를 나타내는 내장된 문서의 배열 입니다. 각 문서 는 이전 문서 범위 의 두 배를 다룹니다. 2048 마이크로초에서 약 1 초 사이의 낮은 값의 경우 히스토그램에 반단계가 포함됩니다. 이 필드는 각 문서에는 다음과 같은 필드가 포함되어 있습니다.
예를 들어
이는 [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) } } }
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" : [ "_id_1_abc_1" ], "totalIndexSize" : 260337664, "totalSize" : 613216256, "indexSizes" : { "_id_" : 9891840, "_id_1_abc_1" : 250445824 }, "scaleFactor" : 1 } }
이 문서에 대한 참조는 출력을 참조하세요.
참고
진행 중인 인덱스
반환된 storageStats
에는 빌드 중인 인덱스에 대한 정보가 포함되어 있습니다. 자세한 내용은 다음을 참조하세요.
뷰에서 storageStats
옵션으로 $collStats
를 수행하면 오류가 발생합니다.
count
필드
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
필드에는 다음 필드가 포함된 내장된 문서가 포함되어 있습니다.
필드 이름 | 설명 |
---|---|
total | collection 스캔을 수행한 총 쿼리 수를 제공하는 64비트 정수입니다. 이 총합은 테일 커서( tailable cursor)를 사용한 쿼리와 사용하지 않은 쿼리로 구성됩니다. |
nonTailable |
예를 들어 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 }