createIndexes() (Criar Vários Índices)
Última atualização: 2026-10-09
createIndexes() (Criar Vários Índices)
createIndexes() cria vários índices em uma única chamada, ex.: `db.users.createIndexes([{ key: { age: 1 } }, { key: { email: 1 }, unique: true }])`. Comparado a um loop de createIndex(), ele agrupa as construções de índice em uma única requisição — mais eficiente para configuração inicial e migrações. Cada definição precisa de key e pode carregar opções. Observe que o índice _id sempre existe e não pode ser removido.
| Categoria | Índice e Administração |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
db.<collection>.createIndexes([<indexSpecs>, ...])
⚙️ Parâmetros
| array de definições de índice | Cada elemento tem uma chave mais sinalizadores opcionais, por exemplo {key: {age: 1}, unique: true}. |
|---|
Retorno:Lista de nomes dos índices criados.
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// createIndexes: índice de age mais índice único de email em uma chamada
const names = db.users.createIndexes([
{ key: { age: 1 } },
{ key: { email: 1 }, unique: true }
])
names
Saída:
[ 'age_1', 'email_1' ]
📌 Notas
- Economiza idas e voltas em comparação a chamar createIndex() repetidamente
- Índices idênticos já presentes são ignorados e reutilizados
- A construção ainda consome recursos em grandes conjuntos de dados
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QcreateIndexes ou createIndex — qual é melhor?
AUse createIndexes() para construir vários índices em uma requisição; createIndex() fica mais claro para um único.
QO createIndexes pode misturar índices simples e únicos?
ASim — dê a cada especificação suas próprias opções, ex.: {key: {age: 1}} e {key: {email: 1}, unique: true}.
QO que acontece quando crio um índice duplicado?
AUm índice idêntico é ignorado e seu nome existente é retornado — sem erro.