When you create an index, you can give the index a custom name. Giving your index a name helps distinguish different indexes on your collection. For example, you can more easily identify the indexes used by a query in the query plan's explain results if your indexes have distinct names.
To specify the index name, include the name
option when you create
the index:
db.<collection>.createIndex(
{ <field>: <value> },
{ name: "<indexName>" }
)
About this Task
Before you specify an index name, consider the following:
Index names must be unique. Creating an index with the name of an existing index returns an error.
- You can't rename an existing index. Instead, you must drop and recreate the index with a new name.
Default Index Names
If you don't specify a name during index creation, the system generates the name by concatenating each index key field and value with underscores. For example:
Index | Default Name |
---|---|
|
|
|
|
|
|
|
|
Procedure
A blog
collection contains data about blog posts and user
interactions.
Create a text index on the content
, users.comments
, and
users.profiles
fields. Set the index name
to
InteractionsTextIndex
:
db.blog.createIndex(
{
content: "text",
"users.comments": "text",
"users.profiles": "text"
},
{
name: "InteractionsTextIndex"
}
)
Results
After you create the index, you can use the
db.collection.getIndexes()
method to get the index name:
db.blog.getIndexes()
Output:
[
{ v: 2, key: { _id: 1 }, name: '_id_' },
{
v: 2,
key: { _fts: 'text', _ftsx: 1 },
name: 'InteractionsTextIndex',
weights: { content: 1, 'users.comments': 1, 'users.profiles': 1 },
default_language: 'english',
language_override: 'language',
textIndexVersion: 3
}
]
Learn More
- To learn how to create an index, see Create an Index.
- For more information about index properties, see Index Properties.