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" )