문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / /

$indexStats (aggregation)

이 페이지의 내용

  • 정의
  • 행동
  • 예제
$indexStats

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

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

{ $indexStats: { } }

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

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

인덱스 키 사양입니다.

참조: 사양

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

인덱스 사용 통계

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

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

호스트와 연결된 샤드의 이름입니다.

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

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

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

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

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

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

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

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

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

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

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

db.orders.insertMany( [
{ _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 } )
db.orders.createIndex(
{ price: 1 },
{ partialFilterExpression: { type: "apparel" } }
)

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

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

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

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

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

[
{
name: 'type_1_item_1',
key: { type: 1, item: 1 },
host: 'examplehost.local:27018',
accesses: { ops: Long("1"), since: ISODate("2024-05-02T15:07:21.420Z") },
shard: "shardA",
spec: { v: 2, key: { type: 1, item: 1 }, name: 'type_1_item_1' }
},
{
name: 'item_1_quantity_1',
key: { item: 1, quantity: 1 },
host: 'examplehost.local:27018',
accesses: { ops: Long("1"), since: ISODate("2024-05-02T15:07:21.254Z") },
shard: "shardA",
spec: { v: 2, key: { item: 1, quantity: 1 }, name: 'item_1_quantity_1' }
},
{
name: '_id_',
key: { _id: 1 },
host: 'examplehost.local:27018',
accesses: { ops: Long("0"), since: ISODate("2024-05-02T15:07:13.274Z") },
shard: "shardA",
spec: { v: 2, key: { _id: 1 }, name: '_id_' }
},
{
name: 'price_1',
key: { price: 1 },
host: 'examplehost.local:27018',
accesses: { ops: Long("0"), since: ISODate("2024-05-02T15:07:54.847Z") },
shard: "shardA",
spec: {
v: 2,
key: { price: 1 },
name: 'price_1',
partialFilterExpression: { type: 'apparel' }
}
}
]

돌아가기

$그룹

다음

limit

이 페이지의 내용