listIndexes
정의
listIndexes
지정된 컬렉션의 인덱스에 관한 정보를 반환합니다. 반환된 인덱스 정보에는 인덱스 생성에 사용된 키와 옵션,숨겨진 인덱스가 포함됩니다. 선택적으로 첫 번째 결과 배치의 배치 크기를 설정할 수 있습니다.
팁
mongosh
에서는 이 명령을db.collection.getIndexes()
헬퍼 메서드를 통해서도 실행할 수 있습니다.헬퍼 메서드는
mongosh
사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 못할 수 있습니다. 편의가 필요하지 않거나 추가 리턴 필드가 필요한 경우 데이터베이스 명령을 사용합니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 구문을 가집니다:
db.runCommand ( { listIndexes: "<collection-name>", cursor: { batchSize: <int> }, comment: <any> } )
명령 필드
이 명령은 다음 필드를 사용합니다.
필드 | 유형 | 설명 |
---|---|---|
listIndexes | 문자열 | 컬렉션의 이름입니다. |
cursor.batchSize | integer | 선택 사항입니다. 커서 배치 크기를 지정합니다. |
comment | any | 선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.
댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다.
|
필요한 액세스 권한
액세스 제어가 적용된 경우 sowkd read
역할은 데이터베이스 내 컬렉션에 listIndexes
를 실행하는 데 필요한 권한을 제공합니다.
행동
Atlas search 인덱스
listIndexes
는 Atlas Search 인덱스에 관한 정보를 반환하지 않습니다. 대신 $listSearchIndexes
를 사용합니다.
클라이언트 연결 해제
MongoDB 4.2부터 listIndexes
를 발급한 클라이언트가 작업이 완료되기 전에 연결을 끊는 경우, MongoDB는 listIndexes
를 사용하여 를killOp
을 종료로 표시합니다.
복제본 세트 구성원 국가 제한
복제본 세트 노드에서 실행하는 경우 listIndexes
작업을 수행하려면 해당 노드가 PRIMARY
또는 SECONDARY
상태에 있어야 합니다. 노드가 STARTUP2
와 같은 다른 상태에 있으면 작업 오류가 발생합니다.
와일드카드 인덱스
MongoDB 6.3, 6.0.5 및 5.0.16부터 wildcardProjection
필드는 인덱스 프로젝션을 제출된 형식으로 저장합니다. 이전 버전의 서버에서는 프로젝션을 정규화된 형태로 저장했을 수 있습니다.
서버는 인덱스를 동일한 방식으로 사용하지만 listIndexes
및 db.collection.getIndexes()
명령의 출력에 차이가 있을 수 있습니다.
출력
listIndexes.cursor
커서가 지정한 배치 크기로 반환되는 결과 세트입니다. 배치 출력의 각 문서에는 다음 필드가 포함되어 있습니다.
필드유형설명idinteger64비트 정수입니다. 0이면 더 이상 정보 배치가 없다는 뜻입니다. 0이 아닌 경우,getMore
명령에서 다음 인덱스 정보 배치를 가져오는 데 사용할 수 있는 커서 ID입니다.ns문자열다음 형식의 데이터베이스 및 컬렉션 이름<database-name>.<collection-name>
firstBatch문서인덱스 정보에는 인덱스 생성에 사용된 키와 옵션이 포함됩니다. 인덱스 옵션 숨김은 값이 참(true)인 경우에만 존재합니다.
필요에 따라
getMore
를 사용하여 추가 결과를 조회합니다.
예시
데이터베이스 인덱스 나열
이 예에서는 커서 배치 크기를 지정하지 않고 contacts
컬렉션의 인덱스을 나열합니다.
1 db.runCommand ( 2 { 3 listIndexes: "contacts" 4 } 5 )
1 { 2 cursor: { 3 id: Long("0"), 4 ns: 'test.contacts', 5 firstBatch: [ 6 { v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.contacts' }, 7 { v: 2, key: { a: 1 }, name: 'a_1', ns: 'test.contacts' } 8 ] 9 }, 10 ok: 1 11 }
결과 배치 크기 지정
이 예시에서는 contacts
collection의 인덱스를 나열하고 커서 배치 크기를 1로 지정합니다.
1 db.runCommand ( 2 { 3 listIndexes: "contacts", cursor: { batchSize: 1 } 4 } 5 )
1 { 2 cursor: { 3 id: Long("4809221676960028307"), 4 ns: 'test.contacts', 5 firstBatch: [ { v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.contacts' } ] 6 }, 7 ok: 1 8 }
추가 결과 조회
이 예시에서는 getMore
을(를)사용하여 contacts
collection에서 추가 결과 배치를 조회합니다.
1 db.runCommand( 2 { 3 getMore: Long("4809221676960028307"), collection: "contacts" 4 } 5 )
1 { 2 cursor: { 3 nextBatch: [ { v: 2, key: { a: 1 }, name: 'a_1', ns: 'test.contacts' } ], 4 id: Long("0"), 5 ns: 'test.contacts' 6 }, 7 ok: 1 8 }