Especificar um nome de índice
Ao criar um índice, você pode atribuir a ele um nome personalizado. Dar um nome ao seu índice ajuda a distinguir os diferentes índices em sua coleção. Por exemplo, você poderá identificar mais facilmente os índices usados por uma query nos resultados da explicação do plano de query se os índices tiverem nomes distintos.
Para especificar o nome do índice, inclua a opção name
ao criar o índice:
db.<collection>.createIndex( { <field>: <value> }, { name: "<indexName>" } )
Sobre esta tarefa
Antes de especificar um nome de índice, considere o seguinte:
Os nomes de índice devem ser únicos. Criar um índice com o nome de um índice existente retorna um erro.
Você não pode renomear um índice existente. Em vez disso, você deve descartar e recriar o índice com um novo nome.
Nomes de índices padrão
Se você não especificar um nome durante a criação do índice, o sistema irá gerar o nome concatenando cada campo-chave e valor do índice com sublinhados. Por exemplo:
Index | Nome padrão |
---|---|
|
|
|
|
|
|
|
|
Procedimento
Uma collection do blog
contém dados sobre blog posts e interações com usuários.
Crie um índice de texto nos campos content
, users.comments
e users.profiles
. Defina o índice name
como InteractionsTextIndex
:
db.blog.createIndex( { content: "text", "users.comments": "text", "users.profiles": "text" }, { name: "InteractionsTextIndex" } )
Resultados
Após criar o índice, você pode utilizar o método db.collection.getIndexes()
para obter o nome do índice:
db.blog.getIndexes()
Saída:
[ { 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 } ]
Saiba mais
Para saber como criar um índice, consulte Criar um índice.
Para mais informações sobre propriedades de índice, consulte Propriedades de Índice.