#18 - Indexação no MongoDB

Breve explicação sobre indexação no MongoDB.

Imagem de capa

Índices vem de apoio para aumentar a eficiência das consultas. Sem índices, o MongoDB deverá percorrer todos os documentos de uma coleção para selecionar os documentos que correspondem a instrução de consulta. Essa verificação é altamente ineficiente e exige que mongod processe um grande volume de dados.

Índices são estruturas de dados especiais que armazenam uma pequena porção de conjuntos de dados facilitando o processamento da consulta. O índice armazena o valor de um campo específico ou um conjunto de campos, ordenado pelo valor do campo, tal como especificado no índice.

O método ensureIndex()

Para criar um índice você precisa usar o método ensureIndex().

Sintaxe

A sintaxe básica do método ensureIndex() é a seguinte:

db.COLLECTION_NAME.ensureIndex({KEY:1})

Esta chave(KEY) é o nome do campo o qual você deseja criar o índice e o 1 é para estabelecer ordenação crescente. Para criar índice em ordem decrescente você precisa o -1.

Exemplo

db.mycol.ensureIndex({title: 1})

Dentro do método ensureIndex() você pode passar múltiplos campos para criar índices sobre estes múltiplos campos.

db.mycol.ensureIndex({title: 1, description: -1})

O método ensureIndex() também aceita uma lista de opções (Opcionais). Estas opções seguem na lista a seguir:

Parâmetro Tipo Descrição
background Boolean Constrói o índice em segundo plano para que a construção deste índice não bloquei outras atividades do banco de dados. Especifique como true para construir em plano de fundo. O valor padrão é false.
unique Boolean Cria um índice exclusivo para que a coleção não aceite a inserção de documentos em que a chave(s) de índice corresponda(m) a um valor existente no índice. Especifique true para criar um índice exclusivo. O valor padrão é false.
name string O nome do índice. Se não tiver especificado o MongoDB gera um nome para o índice através da concatenação dos nomes dos campos indexados e da ordenação.
dropDups Boolean Cria um índice exclusivo em um campo que pode ter duplicatas. MongoDB índices apenas a primeira ocorrência de uma chave e remove todos os documentos da coleção que contêm as próximas ocorrências dessa chave. Especifique true para criar um índice único. O valor padrão é false.
sparse Boolean Se for true, o índice só faz referência a documentos com o campo especificado. Esses índices usam menos espaço, mas se comportam de forma diferente em algumas situações (particularmente em ordenações). O valor padrão é false.
expireAfterSeconds integer Especifica um valor, em segundos, como um TTL para controlar quanto tempo MongoDB retém documentos nesta coleção.
v index version O número da versão do índice. A versão padrão do índice depende da versão do mongod em execução na criação deste.
weights document O peso(weights) e um número entre 1 a 99,999 e denota a relevância do campo em relação aos outros campos indexados no termo de armazenamento.
default_language string Para um índice textual, a linguagem que determina a lista de stop words e as regras para o stemmer e tokenizer. O valor padrão é english.
language_override string Para um índice textual, especifique o nome do campo no documento que contém, a linguagem para substituir o idioma padrão. O valor padrão é o language.

Fonte Traduzida: Tutorials Point - MongoDB Indexing