Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

$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 내장된 문서가 출력에 존재합니다.

필드 이름
설명
reads
읽기 요청에 대한 지연 시간 통계입니다.
writes
쓰기 요청에 대한 지연 시간 통계입니다.
commands
데이터베이스 명령에 대한 지연 시간 통계입니다.
transactions
데이터베이스 트랜잭션에 대한 지연 시간 통계입니다.

이러한 각 필드에는 다음 필드가 포함된 내장된 문서가 포함되어 있습니다.

필드 이름
설명
latency
총 결합된 지연 시간을 마이크로초 단위로 제공하는 64비트 정수입니다.
ops
시작 이후 컬렉션에 대해 수행된 총 작업 수를 제공하는 64비트 정수입니다.
histogram

각각 지연 시간 범위 를 나타내는 내장된 문서의 배열 입니다. 각 문서 는 이전 문서 범위 의 두 배를 다룹니다. 2048 마이크로초에서 약 1 초 사이의 낮은 값의 경우 히스토그램에 반단계가 포함됩니다.

이 필드는 latencyStats: { histograms: true } 옵션이 있는 경우에만 존재합니다. count가 0인 빈 범위는 출력에서 생략됩니다.

각 문서에는 다음과 같은 필드가 포함되어 있습니다.

필드 이름
설명
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) }
]

이는 [1]이 있음을 나타냅니다.

  • 마이크로초 이하로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" : [
"_id_1_abc_1"
],
"totalIndexSize" : 260337664,
"totalSize" : 613216256,
"indexSizes" : {
"_id_" : 9891840,
"_id_1_abc_1" : 250445824
},
"scaleFactor" : 1
}
}

이 문서에 대한 참조는 출력을 참조하세요.

참고

진행 중인 인덱스

반환된 storageStats에는 빌드 중인 인덱스에 대한 정보가 포함되어 있습니다. 자세한 내용은 다음을 참조하세요.

뷰에서 storageStats 옵션으로 $collStats를 수행하면 오류가 발생합니다.

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 필드에는 다음 필드가 포함된 내장된 문서가 포함되어 있습니다.

필드 이름
설명
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 샤드 컬렉션에서 실행할 때 샤드당 하나의 문서를 출력합니다. 각 출력 문서에는 문서에 해당하는 샤드 이름이 포함된 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
}

다음도 참조하세요.

돌아가기

$changeStreamSplitLargeEvent

이 페이지의 내용