문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

$indexStats (aggregation)

이 페이지의 내용

  • 정의
  • 행동
  • 예제
$indexStats

collection의 각 인덱스 사용에 관한 통계를 반환합니다. 액세스 제어를 함께 실행하는 경우 최소한 clusterMonitor 역할이 있는 사용자로 인증합니다.

$indexStats 단계는 빈 문서를 사용하며 구문은 다음과 같습니다.

{ $indexStats: { } }

각 인덱스에 대해 반환 문서에는 다음 필드가 포함됩니다.

출력 필드
설명
name
인덱스 이름

인덱스 키 사양입니다.

참조: 사양.

mongod 프로세스의 호스트 이름 및 포트입니다.

인덱스 사용 통계

  • ops 는 인덱스를 사용한 작업의 수입니다.

  • since 은(는) MongoDB가 통계를 수집한 시간입니다.

호스트와 연결된 샤드의 이름

샤드 클러스터에서만 사용할 수 있습니다.

버전 4.2.4의 새로운 기능.

인덱스 키 사양 문서를 포함하는 인덱스에 대한 전체 사양 문서입니다.

인덱스 옵션 hidden 은 값이 true 인 경우에만 포함됩니다.

버전 4.2.4의 새로운 기능.

인덱스가 현재 작성 중인지 여부를 나타냅니다.

true인 경우에만 사용할 수 있습니다.

버전 4.2.4의 새로운 기능.

인덱스에 대한 통계는 mongod 재시작 또는 인덱스 삭제 및 재생성 시 재설정됩니다.

참고

버전 3.2.3 이전에는 ops 필드 값에 인덱스를 사용하는 $matchmapReduce 연산이 포함되지 않았습니다.

액세스 필드에서 보고하는 통계에는 사용자 요청에 따른 인덱스 액세스만 포함됩니다. TTL 인덱스 를 통한 삭제나 청크 분할 및 마이그레이션 작업과 같은 내부 작업은 포함되지 않습니다.

  • $indexStats 는 aggregation pipeline의 첫 번째 단계여야 합니다.

  • $indexStats 은(는) 거래에서 허용되지 않습니다.

기존 인덱스를 수정하면( collMod 명령 참조) 해당 인덱스의 통계가 재설정됩니다.

예를 들어 orders 컬렉션에는 다음과 같은 문서가 포함되어 있습니다.

{ "_id" : 1, "item" : "abc", "price" : 12, "quantity" : 2, "type": "apparel" }
{ "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "type": "electronics" }
{ "_id" : 3, "item" : "abc", "price" : 10, "quantity" : 5, "type": "apparel" }

컬렉션에 다음 두 개의 인덱스를 만듭니다.

db.orders.createIndex( { item: 1, quantity: 1 } )
db.orders.createIndex( { type: 1, item: 1 } )

collection에 대해 몇 가지 쿼리를 실행합니다.

db.orders.find( { type: "apparel"} )
db.orders.find( { item: "abc" } ).sort( { quantity: 1 } )

orders 컬렉션에서의 인덱스 사용에 대한 통계를 보려면 다음 애그리게이션 작업을 실행하세요.

db.orders.aggregate( [ { $indexStats: { } } ] )

이 작업은 각 인덱스에 대한 사용 통계가 포함된 문서를 반환합니다.

{
"name" : "item_1_quantity_1",
"key" : { "item" : 1, "quantity" : 1 },
"host" : "examplehost.local:27018",
"accesses" : {
"ops" : NumberLong(1),
"since" : ISODate("2020-02-10T21:11:23.059Z")
},
"shard" : "shardA", // Available starting in MongoDB 4.2.4 if run on sharded cluster
"spec" : { // Available starting in MongoDB 4.2.4
"v" : 2,
"key" : { "item" : 1, "quantity" : 1 },
"name" : "item_1_quantity_1"
}
}
{
"name" : "item_1_price_1",
"key" : { "item" : 1, "price" : 1 },
"host" : "examplehost.local:27018",
"accesses" : {
"ops" : NumberLong(1),
"since" : ISODate("2020-02-10T21:11:23.233Z")
},
"shard" : "shardA", // Available starting in MongoDB 4.2.4 if run on sharded cluster
"spec" : { // Available starting in MongoDB 4.2.4
"v" : 2,
"key" : { "item" : 1, "price" : 1 },
"name" : "item_1_price_1"
}
}
{
"name" : "item_1",
"key" : { "item" : 1 },
"host" : "examplehost.local:27018",
"accesses" : {
"ops" : NumberLong(0),
"since" : ISODate("2020-02-10T21:11:22.947Z")
},
"shard" : "shardA", // Available starting in MongoDB 4.2.4 if run on sharded cluster
"spec" : { // Available starting in MongoDB 4.2.4
"v" : 2,
"key" : { "item" : 1 },
"name" : "item_1"
}
}
{
"name" : "_id_",
"key" : { "_id" : 1 },
"host" : "examplehost.local:27018",
"accesses" : {
"ops" : NumberLong(0),
"since" : ISODate("2020-02-10T21:11:18.298Z")
},
"shard" : "shardA", // Available starting in MongoDB 4.2.4 if run on sharded cluster
"spec" : { // Available starting in MongoDB 4.2.4
"v" : 2,
"key" : { "_id" : 1 },
"name" : "_id_"
}
}
← $group (aggregation)

이 페이지의 내용