createIndex() (Criar um Índice)
Última atualização: 2026-10-09
createIndex() (Criar um Índice)
createIndex() constrói um único índice para acelerar consultas, ex.: `db.users.createIndex({ age: 1 }, { unique: true })`. O valor é 1 para ascendente, -1 para descendente; os tipos de índice text, hashed e 2dsphere também são suportados. Um índice único impõe a unicidade do campo. Observe que construir um índice em uma coleção grande pode levar tempo e bloquear escritas — agende fora do pico em produção.
| Categoria | Índice e Administração |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
db.<collection>.createIndex(<keys>, <options>)
⚙️ Parâmetros
| chave de índice | Mapeamento de campo para direção, por exemplo {age: 1, name: -1}. |
|---|---|
| opções | Opcional. Opções como unique, sparse, name, background. |
Retorno:O nome do novo índice (string).
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// createIndex: índice único ascendente em age
const idx = db.users.createIndex({ age: 1 }, { unique: true })
idx
Saída:
'age_1'
📌 Notas
- O nome padrão do índice é 'campo_direção'; substitua com a opção name
- Um índice único rejeita duplicatas com DuplicateKeyError
- A ordem dos campos em índices compostos importa — o prefixo mais à esquerda é aplicado
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QComo crio um índice único com createIndex?
AAdicione {unique: true} às opções, ex.: db.users.createIndex({email: 1}, {unique: true}).
QO createIndex bloqueia consultas?
AVersões antigas impactavam brevemente as escritas mesmo no modo em segundo plano; builds híbridos 4.2+ afetam muito menos leituras/escritas, mas ainda prefira agendar fora do pico para coleções grandes.
QComo crio um índice composto?
APasse vários campos, ex.: db.users.createIndex({age: 1, name: -1}); consultas que usam o prefixo mais à esquerda são beneficiadas.