db.collection.getSearchIndexes()
Definition
New in version 7.0: (Also available starting in 6.0.7)
Returns information about existing Atlas Search indexes or Atlas Vector 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               }             }           ]         }       }     ]   } ]