Este capítulo apresenta os índices do MongoDB. Similar ao MYSQL, o MongoDB também suporta índices. A diferença é que o MongoDB permite adicionar índices a qualquer campo aninhado da estrutura JSON, com o mesmo propósito de melhorar a eficiência das consultas.
Tipos de Índices do MongoDB
Índice de Campo Único
Similar ao MYSQL, criar um índice para um único campo
Formato:
db.coleção.createIndex( { nome_do_campo: direção_de_ordenacao(1 ou -1) } )
Nota: A direção de ordenação 1 representa ordem crescente, e -1 representa ordem decrescente.
Exemplo 1:
db.registros.createIndex( { pontuação: 1 } )
Cria um índice para o campo pontuação.
Exemplo 2:
db.registros.createIndex( { "local.estado": 1 } )
Cria um índice para o campo JSON aninhado local.estado.
Índice Composto
Similar ao MYSQL, vários campos podem ser combinados para criar um índice, acelerando a velocidade das consultas compostas.
Formato:
db.coleção.createIndex( { <campo1>: <tipo>, <campo2>: <tipo2>, ... } )
Exemplo:
db.produtos.createIndex( { "item": 1, "estoque": 1 } )
Cria um índice composto para os campos item e estoque, ambos em ordem crescente (1 representa ordem crescente).
Índice de Texto (Índice de Texto Completo)
O índice de texto (text) é principalmente usado para suportar busca de texto completo.
Nota: Uma coleção permite apenas um índice de texto, mas um índice de texto pode incluir vários campos.
Exemplo:
db.lojas.createIndex( { nome: "text", descrição: "text" } )
Cria um índice de texto completo para os campos nome e descrição.
Nota: Para mais detalhes, consulte a seção Índice de Texto Completo.
Índice Espacial (Índice GEO)
Usado principalmente para suportar consultas relacionadas a informações geográficas, principalmente suportando dois tipos de índices: 2dsphere e 2d. Para mais detalhes, consulte a seção de Consulta Geoespacial.
Excluindo Índices
Para listar todos os índices em uma coleção:
db.animais.getIndexes()
Para excluir o índice catIdx da coleção de animais:
db.animais.dropIndex( "catIdx" )