dropIndexes() (Remover Índices)
Última atualização: 2026-10-09
dropIndexes() (Remover Índices)
dropIndexes() remove um ou mais índices, ex.: `db.users.dropIndexes()` remove todos os índices exceto _id, ou passe um array de nomes para remover específicos. Ele também exclui todos os índices com o nome prefixado dado (então 'age_1' arrasta 'age_1_text' junto). O índice _id sempre sobrevive. É uma forma comum de limpar ambientes de teste.
| Categoria | Índice e Administração |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
db.<collection>.dropIndexes(<indexNames>)
⚙️ Parâmetros
| array de nomes de índices | Opcional. Nomes a remover; omita para remover todos os índices exceto _id. |
|---|
Retorno:Objeto de informações com a contagem e o status dos índices removidos.
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// dropIndexes: remove os índices de age e email
db.users.dropIndexes(['age_1', 'email_1'])
Saída:
{ ok: 1, nIndexesWas: 4, nIndexesRemoved: 2 }
📌 Notas
- Omitir os argumentos remove todos os índices exceto _id
- A correspondência é por prefixo, então 'age_1' também remove 'age_1_text'
- O índice _id não pode ser removido
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO dropIndexes sem argumentos remove todos os índices?
ASim, tudo exceto _id — verifique a lista com getIndexes() primeiro.
QO dropIndexes pode atingir índices específicos?
ASim, passe um array de nomes, ex.: db.users.dropIndexes(['age_1', 'email_1']).
QPor que dropIndexes remove mais que 'age_1'?
AEle corresponde pelo prefixo do nome, então todo índice que começa com 'age_1' (ex.: 'age_1_text') também é removido.