MongoDB – Indexing

Advertisements

Indexes suportam a resolução eficiente de consultas. Sem índices, o MongoDB deve digitalizar cada documento de uma coleção para selecionar os documentos que correspondem à declaração da consulta. Esta varredura é altamente ineficiente e requer que o MongoDB processe um grande volume de dados.

Indexes são estruturas de dados especiais, que armazenam uma pequena porção do conjunto de dados em uma forma fácil de atravessar. O índice armazena o valor de um campo ou conjunto de campos específico, ordenado pelo valor do campo como especificado no índice.

O método createIndex()

Para criar um índice, você precisa usar o método createIndex() do MongoDB.

Sintaxe

A sintaxe básica do método createIndex() é a seguinte().

>db.COLLECTION_NAME.createIndex({KEY:1})

Aqui é o nome do campo no qual você quer criar índice e 1 é para ordem ascendente. Para criar índice em ordem decrescente você precisa usar -1.

Exemplo

>db.mycol.createIndex({"title":1}){"createdCollectionAutomatically" : false,"numIndexesBefore" : 1,"numIndexesAfter" : 2,"ok" : 1}>

No método createIndex() você pode passar múltiplos campos, para criar índice em múltiplos campos.

>db.mycol.createIndex({"title":1,"description":-1})>

Este método também aceita lista de opções (que são opcionais). Segue a lista –

Parameter Type Descrição
background Boolean Builds o índice em segundo plano para que a construção de um índice não bloqueie outras atividades da base de dados. Especifique verdadeiro para construir em segundo plano. O valor padrão é falso.
unique Boolean Cria um índice único para que a coleção não aceite a inserção de documentos onde a chave ou chaves de índice correspondem a um valor existente no índice. Especifique true para criar um índice único. O valor padrão é falso.
nome string O nome do índice. Se não especificado, MongoDB gera um nome de índice concatenando os nomes dos campos indexados e a ordem de ordenação.
sparse Boolean Se for verdade, o índice só faz referência a documentos com o campo especificado. Estes índices usam menos espaço, mas comportam-se de forma diferente em algumas situações (em particular, em tipos). O valor padrão é falso.
expirarApósSegundos integer Especifica um valor, em segundos, como uma TTL para controlar quanto tempo o MongoDB retém documentos nesta coleção.
pesos documento O peso é um número que varia de 1 a 99,999 e denota o significado do campo em relação aos outros campos indexados em termos de pontuação.
língua_default string Para um índice de texto, a linguagem que determina a lista de palavras de parada e as regras para o stemmer e o tokenizer. O valor padrão é inglês.
language_override string Para um índice de texto, especifique o nome do campo no documento que contém, o idioma para sobrescrever o idioma padrão. O valor padrão é language.

O método dropIndex()

Você pode soltar um determinado índice usando o método dropIndex() do MongoDB.

Sintaxe

A sintaxe básica do método DropIndex() é a seguinte().

>db.COLLECTION_NAME.dropIndex({KEY:1})

Aqui é o nome do arquivo no qual você quer criar índice e 1 é para ordem ascendente. Para criar índice em ordem decrescente você precisa usar -1.

Exemplo

> db.mycol.dropIndex({"title":1}){"ok" : 0,"errmsg" : "can't find index with key: { title: 1.0 }","code" : 27,"codeName" : "IndexNotFound"}

O método dropIndexes()

Este método apaga múltiplos índices (especificados) em uma coleção.

Sintaxe

A sintaxe básica do método DropIndexes() é a seguinte() –

>db.COLLECTION_NAME.dropIndexes()

Exemplo

Passemos que criamos 2 índices na coleção chamada mycol, como mostrado abaixo –

> db.mycol.createIndex({"title":1,"description":-1})

O exemplo seguinte remove os índices criados acima de mycol –

>db.mycol.dropIndexes({"title":1,"description":-1}){ "nIndexesWas" : 2, "ok" : 1 }>

O método getIndexes()

Este método retorna a descrição de todos os índices da coleção.

Sintaxe

O método getIndexes() é a sintaxe básica do método getIndexes() –

db.COLLECTION_NAME.getIndexes()

Exemplo

Passemos que criamos 2 índices no mycol chamado coleção como mostrado abaixo –

> db.mycol.createIndex({"title":1,"description":-1})

A seguir o exemplo recupera todos os índices da coleção mycol –

> db.mycol.getIndexes()>
>Advertisements

Deixe uma resposta

O seu endereço de email não será publicado.