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

$listSearchIndexes (집계)

이 페이지의 내용

  • 정의
  • 구문
  • 명령 필드
  • 액세스 제어
  • 출력
  • 인덱스 상태 세부 정보
  • 동의어 매핑 세부 정보
  • Atlas Search 인덱스 상태
  • 오류
  • 예시
  • 모든 검색 인덱스 반환
  • 이름으로 단일 검색 인덱스 반환
  • ID로 단일 검색 인덱스 반환
  • 자세히 알아보기
$listSearchIndexes

버전 7.0에 새로 추가됨: (6.0.7부터 사용 가능)

지정된 컬렉션 의 기존 Atlas Search 인덱스 에 대한 정보를 반환합니다.

중요

이 명령은 MongoDB Atlas 에서 호스팅되는 배포에서만 실행할 수 있으며, 최소 M10 의 Atlas 클러스터 계층이 필요합니다.

명령 구문:

db.<collection>.aggregate(
[
{
$listSearchIndexes:
{
id: <indexId>,
name: <indexName>
}
}
]
)

$listSearchIndexes 다음 필드 중 하나를 사용합니다.

필드
유형
필요성
설명
id
문자열
옵션
정보를 반환할 인덱스의 ID입니다.
name
문자열
옵션
정보를 반환할 인덱스의 이름입니다.

idname을 모두 지정할 수는 없습니다. idname 필드를 모두 생략하면 $listSearchIndexes는 컬렉션에 있는 모든 Atlas Search 인덱스에 대한 정보를 반환합니다.

배포서버 에서 액세스 제어를 적용하는 경우 $listSearchIndexes 를 실행 하는 사용자에게는 데이터베이스 또는 컬렉션 에 대한 listSearchIndexes 권한 조치 이 있어야 합니다.

{
resource: {
db : <database>,
collection: <collection>
},
actions: [ "listSearchIndexes" ]
}

내장된 read 역할은 listSearchIndexes 권한을 제공합니다. 다음 예시에서는 qa 데이터베이스에 대한 read 역할을 부여합니다.

db.grantRolesToUser(
"<user>",
[ { role: "read", db: "qa" } ]
)

$listSearchIndexes 문서 배열 을 반환합니다. 배열 의 각 문서 에는 다음 필드가 포함되어 있습니다.

필드
유형
설명
id
문자열
인덱스의 고유 식별자.
name
문자열
인덱스의 이름입니다.
status
문자열
인덱스의 상태입니다. 자세한 내용은 Atlas Search 인덱스 상태를 참조하세요.
queryable
부울
인덱스를 쿼리할 준비가 되었는지 여부를 나타냅니다.
latestDefinitionVersion
문서
인덱스의 버전을 설명합니다.
latestDefinitionVersion.version
integer
인덱스 정의와 연결된 버전 번호입니다. 인덱스 정의를 업데이트하면 버전 번호가 자동으로 증가합니다.
latestDefinitionVersion.createdAt
날짜
현재 인덱스 정의가 생성된 시간입니다.
latestDefinition
문서
인덱스에 대한 가장 최근 정의입니다. 자세한 내용은 검색 인덱스 정의 구문을 참조하세요.
statusDetail
문서 배열
각 검색 호스에 대한 인덱스 상태를 포함합니다(mongot).
statusDetail.[n].hostname
문자열
해당 mongot의 호스트 이름입니다.
statusDetail.[n].status
문자열
해당 mongot에 대한 인덱스 상태입니다.
statusDetail.[n].queryable
부울
인덱스가 해당 mongot에서 쿼리할 준비가 되었는지 여부를 나타냅니다.
statusDetail.[n].mainIndex
문서

해당 mongot의 활성 인덱스에 대한 상태 정보를 포함합니다.

자세한 내용은 인덱스 상태 세부정보를 참조하세요.

statusDetail.[n].stagedIndex
문서

해당 mongot의 백그라운드에서 빌드되는 인덱스에 대한 상태 정보를 포함합니다. 이 필드는 기존 활성 인덱스를 업데이트하기 위해 새 인덱스를 빌드하는 경우에만 나타납니다.

자세한 내용은 인덱스 상태 세부정보를 참조하세요.

synonymMappingStatus
문자열

인덱스의 동의어 매핑 상태입니다. 이 필드는 인덱스에 동의어가 정의된 경우에만 나타납니다. 다음 값 중 하나 일 수 있습니다.

  • BUILDING

  • FAILED

  • READY

반환된 상태는 각 개별 mongot에 대한 동의어 매핑의 요약입니다.

synonymMappingStatusDetail
문서 배열
해당 검색 호스트(mongot)의 인덱스 동의어 매핑 상태를 포함합니다. 이 필드(및 하위 필드)는 인덱스에 동의어가 정의된 경우에만 나타납니다.
synonymMappingStatusDetail.[n].status
문자열
해당 mongot 프로세스 전반에 걸친 동의어 매핑의 상태입니다.
synonymMappingStatusDetail.[n].queryable
부울
해당 동의어 매핑이 모든 mongot 프로세스에서 쿼리를 지원할 수 있는지 여부를 나타냅니다.
message
문자열
해당되는 경우 동의어 매핑에 대한 오류를 설명합니다. 이 동의어 매핑의 statusFAILED인 경우에만 나타납니다.

다음 표에서는 다음 문서의 포함된 필드에 대해 설명합니다. - statusDetail.[mongot].mainIndex - statusDetail.[mongot].stagedIndex

필드는 특정 mongot의 색인 상태를 설명합니다.

필드
유형
설명
status
문자열
해당 mongot의 인덱스 생성 상태입니다.
queryable
부울
인덱스 생성이 해당 mongot에서 쿼리할 준비가 되었는지 여부를 나타냅니다.
synonymMappingStatus
문자열
해당 mongot 인덱스 생성의 동의어 매핑 상태입니다. 인덱스에 동의어가 정의된 경우에만 나타납니다.
synonymMappingStatusDetails
문서

해당 mongot의 인덱스 동의어 매핑 상태를 포함합니다. 이 필드(및 하위 필드)는 인덱스에 동의어가 정의된 경우에만 표시됩니다.

자세한 내용은 동의어 매핑 세부 정보를 참조하세요.

definitionVersion
문서
이 인덱스 생성이 구축되고 있는 인덱스 정의 버전을 설명합니다.
definitionVersion.version
integer
인덱스 생성이 해당 mongot에서 사용 중인 버전 번호입니다. 인덱스 정의를 업데이트하면 업데이트된 인덱스는 증가된 버전 번호로 빌드됩니다.
definitionVersion.createdAt
날짜
인덱스 정의가 생성된 시간입니다.
definition
문서
이 인덱스가 빌드되는 정의입니다.

다음 표에서는 다음 객체의 내장된 필드에 대해 설명합니다.

  • statusDetail.mainIndex.synonymMappingStatusDetails.<synonymMapping>

  • statusDetail.stagedIndex.synonymMappingStatusDetails<synonymMapping>

필드
유형
설명
status
문자열
해당 mongot 프로세스의 동의어 매핑 상태입니다.
queryable
부울
동의어 매핑이 해당 mongot 프로세스에 대한 쿼리를 지원할 수 있는지 여부를 나타냅니다.
message
문자열
해당되는 경우 동의어 매핑에 대한 오류를 설명합니다. 이 동의어 매핑의 statusFAILED인 경우에만 나타납니다.

$listSearchIndexes 출력의 status 필드는 다음 중 하나일 수 있습니다.

상태
설명
BUILDING

다음 시나리오에서는 인덱스가 BUILDING 상태가 될 수 있습니다.

  • Atlas가 인덱스를 작성하거나 편집 후 인덱스를 다시 작성하고 있습니다.

  • Atlas Search는 컬렉션의 인덱싱 변경 사항을 따라갈 수 없습니다. 이 경우 Atlas는 백그라운드에서 인덱스를 다시 빌드합니다.

인덱스가 BUILDING 상태인 경우 다음과 같습니다.

  • 새 인덱스인 경우, Atlas Search는 인덱스 빌드가 완료될 때까지 인덱스를 쿼리에 사용할 수 없습니다.

  • 기존 인덱스인 경우, Atlas Search는 인덱스 재구성이 완료될 때까지 쿼리에 이전 인덱스 정의를 사용합니다.

BUILDING 상태의 인덱스는 쿼리가 가능하거나 쿼리가 불가능할 수 있습니다.

DOES_NOT_EXIST

인덱스가 존재하지 않습니다.

DOES_NOT_EXIST 상태의 인덱스는 항상 쿼리가 불가능합니다.

DELETING

Atlas가 인덱스를 삭제하는 중입니다.

DELETING 상태의 인덱스는 항상 쿼리가 불가능합니다.

FAILED

인덱스 빌드에 실패했습니다. 유효하지 않은 인덱스 정의로 인해 인덱스가 FAILED 상태 에 들어갈 수 있습니다.

FAILED 상태의 인덱스는 쿼리가 가능하거나 쿼리가 불가능할 수 있습니다.

PENDING

Atlas가 아직 인덱스 빌드를 시작하지 않았습니다.

PENDING 상태의 인덱스는 항상 쿼리가 불가능합니다.

READY

인덱스가 준비되었으며 쿼리를 지원할 수 있습니다.

READY 상태의 인덱스는 항상 쿼리가 가능합니다.

STALE

인덱스를 쿼리할 수 있지만 인덱싱된 컬렉션에서 데이터 복제가 중지되었습니다. 인덱스를 검색하면 오래된 데이터가 반환될 수 있습니다.

인덱스는 복제 오류로 인해 STALE 상태가 될 수 있습니다.

STALE 상태의 인덱스는 항상 쿼리가 가능합니다.

버전 7.1에서 변경: 이 명령은 Atlas에서 실행되지 않으면 오류가 발생합니다.

db.names.aggregate( [
{ $listSearchIndexes: { } }
] )
MongoServerError: PlanExecutor error during aggregation :: caused by :: Search index commands are only supported with Atlas.

이전 릴리스에서는 이 명령이 Atlas에서 실행되지 않으면 빈 결과를 반환했습니다.

이번 예시에서 다음의 방법을 설명합니다.

다음 예에서는 movies 컬렉션의 모든 Atlas Search 인덱스를 반환합니다.

db.movies.aggregate(
[
{
$listSearchIndexes: { }
}
]
)

샘플 출력:

[
{
id: '6524096020da840844a4c4a7',
name: 'default',
status: 'BUILDING',
queryable: true,
latestDefinitionVersion: {
version: 2,
createdAt: ISODate("2023-10-09T14:51:57.355Z")
},
latestDefinition: {
mappings: { dynamic: true },
storedSource: { include: [ 'awards.text' ] }
},
statusDetail: [
{
hostname: 'atlas-n1cm1j-shard-00-02',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
},
stagedIndex: {
status: 'PENDING',
queryable: false,
definitionVersion: {
version: 1,
createdAt: ISODate("2023-10-09T14:51:29.000Z")
},
definition: {
mappings: { dynamic: true, fields: {} },
storedSource: true
}
}
},
{
hostname: 'atlas-n1cm1j-shard-00-01',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
},
stagedIndex: {
status: 'PENDING',
queryable: false,
definitionVersion: {
version: 1,
createdAt: ISODate("2023-10-09T14:51:29.000Z")
},
definition: {
mappings: { dynamic: true, fields: {} },
storedSource: true
}
}
},
{
hostname: 'atlas-n1cm1j-shard-00-00',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
}
}
]
},
{
id: '65240be420da840844a4d077',
name: 'synonym_mappings',
status: 'READY',
queryable: true,
latestDefinitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.305Z")
},
latestDefinition: {
mappings: {
dynamic: true,
fields: {
fullplot: { type: 'string' }
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
],
statusDetail: [
{
hostname: 'atlas-n1cm1j-shard-00-02',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
},
{
hostname: 'atlas-n1cm1j-shard-00-01',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
},
{
hostname: 'atlas-n1cm1j-shard-00-00',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
}
]
}
]

다음 예제에서는 movies 컬렉션에서 synonym-mappings 인덱스를 반환합니다.

db.movies.aggregate(
[
{
$listSearchIndexes:
{
name: "synonym-mappings"
}
}
]
)

샘플 출력:

[
{
id: '65240be420da840844a4d077',
name: 'synonym_mappings',
status: 'READY',
queryable: true,
latestDefinitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.305Z")
},
latestDefinition: {
mappings: {
dynamic: true,
fields: {
fullplot: { type: 'string' }
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
],
statusDetail: [
{
hostname: 'atlas-n1cm1j-shard-00-02',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
},
{
hostname: 'atlas-n1cm1j-shard-00-01',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
},
{
hostname: 'atlas-n1cm1j-shard-00-00',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
}
]
}
]

다음 예에서는 제공된 id를 사용하여 검색 인덱스를 반환합니다.

db.movies.aggregate(
[
{
$listSearchIndexes:
{
id: "6524096020da840844a4c4a7"
}
}
]
)

샘플 출력:

[
{
id: '6524096020da840844a4c4a7',
name: 'default',
status: 'BUILDING',
queryable: true,
latestDefinitionVersion: {
version: 2,
createdAt: ISODate("2023-10-09T14:51:57.355Z")
},
latestDefinition: {
mappings: { dynamic: true },
storedSource: { include: [ 'awards.text' ] }
},
statusDetail: [
{
hostname: 'atlas-n1cm1j-shard-00-02',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
},
stagedIndex: {
status: 'PENDING',
queryable: false,
definitionVersion: {
version: 1,
createdAt: ISODate("2023-10-09T14:51:29.000Z")
},
definition: {
mappings: { dynamic: true, fields: {} },
storedSource: true
}
}
},
{
hostname: 'atlas-n1cm1j-shard-00-01',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
},
stagedIndex: {
status: 'PENDING',
queryable: false,
definitionVersion: {
version: 1,
createdAt: ISODate("2023-10-09T14:51:29.000Z")
},
definition: {
mappings: { dynamic: true, fields: {} },
storedSource: true
}
}
},
{
hostname: 'atlas-n1cm1j-shard-00-00',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
}
}
]
}
]

mongosh 메서드를 사용하여 Atlas Search 인덱스를 보려면 db.collection.getSearchIndexes() 를 참조하세요.

Atlas Search 인덱스를 생성하려면 다음을 참조하세요.

돌아가기

$listSampledQueries