createIndexes (Construir Índices)
Última atualização: 2026-10-09
createIndexes (Construir Índices)
createIndexes constrói índices em uma coleção — de campo único, compostos, únicos, TTL, text e geoespaciais. No mongosh, o helper db.collection.createIndex({ field: 1 }) é o típico. As construções de índice consomem recursos; em coleções grandes, leituras e escritas continuam durante o build híbrido (padrão desde a 4.2). A ordem dos campos em índices compostos molda o suporte a consultas.
| Categoria | Comandos de Administração |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
db.orders.createIndex({ userId: 1, createdAt: -1 })
db.users.createIndex({ email: 1 }, { unique: true })
db.runCommand({ createIndexes: "orders", indexes: [{ key: { userId: 1 }, name: "user" }] })
⚙️ Parâmetros
| key | Chaves e direções de índice, por exemplo { userId: 1, createdAt: -1 }. |
|---|---|
| unique | Defina true para um índice único. |
| name | Nome do índice; gerado automaticamente quando omitido. |
Retorno:Retorna numIndexesBefore, numIndexesAfter e ok
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// createIndexes: índices compostos e únicos
use shop
db.orders.createIndex({ userId: 1, createdAt: -1 })
db.users.createIndex({ email: 1 }, { unique: true })
Saída:
{ numIndexesBefore: 1, numIndexesAfter: 2, ok: 1 }
📌 Notas
- A ordem dos campos compostos determina quais consultas e ordenações um índice atende
- Índices únicos rejeitam duplicatas com erros de chave duplicada
- Índices custam disco e memória — não indexe todo campo
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QComo devo ordenar os campos em um índice composto?
AColoque campos de filtro por igualdade primeiro, e campos de faixa e ordenação depois.
QO que acontece em inserções duplicadas com um índice único?
AA inserção falha com um erro de chave duplicada.
QA criação de índice bloqueia o banco?
ADesde a 4.2, o build híbrido mantém leituras e escritas em execução, embora CPU e E/S sejam consumidas.