db.collection.getSearchIndexes()
On this page
Definition
New in version 7.0: (Also available starting in 6.0.7)
Returns information about existing Atlas Search indexes on a specified collection.
Important
mongosh Method
This page documents a mongosh
method. This is not
the documentation for a language-specific driver, such as Node.js.
For MongoDB API drivers, refer to the language-specific MongoDB driver documentation.
Compatibility
This method is available in deployments hosted in the following environments:
MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
Important
This command is not supported in serverless instances. For more information, see Unsupported Commands.
Syntax
Command syntax:
db.<collection>.getSearchIndexes(<indexName>)
Command Fields
getSearchIndexes()
takes this field:
Field | Type | Necessity | Description |
---|---|---|---|
| string | Optional | Name of the index to return information about. If you omit the
|
Access Control
If your deployment enforces access control, the user running
getSearchIndexes()
must have the listSearchIndexes
privilege
action on the database or collection:
{ resource: { db : <database>, collection: <collection> }, actions: [ "listSearchIndexes" ] }
The built-in read
role provides the the
listSearchIndexes
privilege. The following example grants the
read
role on the qa
database:
db.grantRolesToUser( "<user>", [ { role: "read", db: "qa" } ] )
Output
getSearchIndexes()
returns an array of documents. Each document in the array
contains the following fields:
Field | Type | Description |
---|---|---|
| string | Unique identifier for the index. |
| string | Name of the index. |
| string | Status of the index. For more information, see Atlas Search Index Statuses. |
| boolean | Indicates whether the index is ready to be queried. |
| document | Describes the version of the index. |
| integer | Version number associated with the index definition. When you update an index definition, the version number increments automatically. |
| date | Time when the current index definition was created. |
| document | The most recent definition for the index. For more information, see Search Index Definition Syntax. |
| array of documents | Contains the status of the index on each search host
( |
| string | Hostname of the corresponding |
| string | Status of the index on the corresponding |
| boolean | Indicates whether the index is ready to be queried on the
corresponding |
| document | Contains status information about the active index on the
corresponding For details, see Index Status Details. |
| document | Contains status information about an index being built in the
background on the corresponding For details, see Index Status Details. |
| string | Status of the index's synonym mappings. This field only appears if the index has synonyms defined. Can be one of the following values:
The returned status is a summary of the synonym mappings on each
individual |
| array of documents | Contains the status of the index's synonym mappings on each
search host ( |
| string | Status for the corresponding synonym mapping across all
|
| boolean | Indicates whether the corresponding synonym mapping can support
queries across all |
| string | Describes an error for the synonym mapping, if applicable. Only
appears if the |
Index Status Details
The following table describes the embedded fields of the following
documents:
- statusDetail.[mongot].mainIndex
- statusDetail.[mongot].stagedIndex
The fields describe the index status on a specific mongot
.
Field | Type | Description |
---|---|---|
| string | The state of the index generation on the corresponding
|
| boolean | Indicates whether the index generation is ready to be queried on
the corresponding |
| string | The state of the index generation's synonym mappings on the
corresponding |
| document | Contains the status of the index's synonym mappings on the
corresponding For more information, see Synonym Mapping Details. |
| document | Describes the index definition version that this index generation is being built with. |
| integer | Version number that the index generation is using on the
corresponding |
| date | Time when the index definition was created. |
| document | The definition that this index is being built with. |
Synonym Mapping Details
The following table describes the embedded fields of the following objects:
statusDetail.mainIndex.synonymMappingStatusDetails.<synonymMapping>
statusDetail.stagedIndex.synonymMappingStatusDetails<synonymMapping>
Field | Type | Description |
---|---|---|
| string | Status for the synonym mapping across on the corresponding
|
| boolean | Indicates whether the synonym mapping can support queries on the
corresponding |
| string | Describes an error for the synonym mapping, if applicable. Only
appears if the |
Atlas Search Index Statuses
The status
field in the getSearchIndexes()
output can be one of the
following:
Status | Description |
---|---|
| The following scenarios can cause an index to be in the
When the index is in the
An index in the |
| The index does not exist. An index in the |
| Atlas is deleting the index. An index in the |
| The index build failed. Indexes can enter the An index in the |
| Atlas has not yet started building the index. An index in the |
| The index is ready and can support queries. An index in the |
| The index is queryable but has stopped replicating data from the indexed collection. Searches on the index may return out-of-date data. Indexes can enter the An index in the |
Examples
These examples demonstrate how to:
Return All Search Indexes
The following example returns all Atlas Search indexes on the movies
collection. The movies
collection contains two search indexes:
default
and synonym_mappings
.
db.movies.getSearchIndexes()
Sample output:
[ { 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 } } ] } } ] } ]
Return a Single Search Index
The following example returns the synonym_mappings
index on the
movies
collection:
db.movies.getSearchIndexes("synonym_mappings")
Sample output:
[ { 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 } } ] } } ] } ]