3 min de leitura
#18 - Indexação no MongoDB
Breve explicação sobre indexação no MongoDB.
Í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
Comentários