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

listIndexes

이 페이지의 내용

  • 정의
  • 구문
  • 명령 필드
  • 필요한 액세스 권한
  • 행동
  • 출력
  • 예제
listIndexes

지정된 컬렉션의 인덱스에 대한 정보를 반환합니다. 반환된 인덱스 정보에는 인덱스를 만드는 데 사용된 키와 옵션, 숨겨진 인덱스 가 포함됩니다. 선택적으로 첫 번째 결과 배치의 배치 크기를 설정할 수 있습니다.

mongosh에서는 이 명령을 db.collection.getIndexes() 헬퍼 메서드를 통해서도 실행할 수 있습니다.

헬퍼 메서드는 mongosh 사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 못할 수 있습니다. 편의가 필요하지 않거나 추가 리턴 필드가 필요한 경우 데이터베이스 명령을 사용합니다.

명령은 다음과 같은 구문을 가집니다:

db.runCommand (
{
listIndexes: "<collection-name>",
cursor: { batchSize: <int> },
comment: <any>
}
)

이 명령은 다음 필드를 사용합니다.

필드
유형
설명
listIndexes
문자열
컬렉션의 이름입니다.
cursor.batchSize
integer
선택 사항입니다. 커서 배치 크기를 지정합니다.
comment
어떤

선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.

댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다.

참고

listIndexes 명령에 설정된 모든 주석은 listIndexes 커서에서 실행되는 후속 getMore 명령에 의해 상속됩니다.

액세스 제어가 적용된 경우 sowkd read 역할은 데이터베이스 내 컬렉션에 listIndexes를 실행하는 데 필요한 권한을 제공합니다.

listIndexesAtlas Search 인덱스에 관한 정보를 반환하지 않습니다. 대신 $listSearchIndexes를 사용합니다.

MongoDB 4.2부터 listIndexes를 발급한 클라이언트가 작업이 완료되기 전에 연결을 끊는 경우, MongoDB는 listIndexes를 사용하여 를killOp을 종료로 표시합니다.

복제본 세트 노드에서 실행하는 경우 listIndexes 작업을 수행하려면 해당 노드가 PRIMARY 또는 SECONDARY 상태에 있어야 합니다. 노드가 STARTUP2와 같은 다른 상태에 있으면 작업 오류가 발생합니다.

MongoDB 6.3, 6.0.5 및 5.0.16부터 wildcardProjection 필드는 인덱스 프로젝션을 제출된 형식으로 저장합니다. 이전 버전의 서버에서는 프로젝션을 정규화된 형태로 저장했을 수 있습니다.

서버는 인덱스를 동일한 방식으로 사용하지만 listIndexesdb.collection.getIndexes() 명령의 출력에 차이가 있을 수 있습니다.

listIndexes.cursor

커서가 지정한 배치 크기로 반환되는 결과 세트입니다. 배치 출력의 각 문서에는 다음 필드가 포함되어 있습니다.

필드
유형
설명
id
integer
64비트 정수입니다. 0이면 더 이상 정보 배치가 없다는 뜻입니다. 0이 아닌 경우, getMore 명령에서 다음 인덱스 정보 배치를 가져오는 데 사용할 수 있는 커서 ID입니다.
ns
문자열
다음 형식의 데이터베이스 및 컬렉션 이름 <database-name>.<collection-name>
firstBatch
문서

인덱스 정보에는 인덱스 생성에 사용된 키와 옵션이 포함됩니다. 인덱스 옵션 숨김은 값이 참(true)인 경우에만 존재합니다.

필요에 따라 getMore를 사용하여 추가 결과를 조회합니다.

listIndexes.ok

명령의 반환 값입니다. 값이 1이면 성공입니다.

이 예에서는 커서 배치 크기를 지정하지 않고 contacts 컬렉션의 인덱스을 나열합니다.

1db.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로 지정합니다.

1db.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에서 추가 결과 배치를 조회합니다.

1db.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}
← listDatabases