Introdução ao MongoDB create Index

O MongoDB é usado por mineração de dados complexos, algoritmos de análise de dados para gerenciar, modificar e organizar os dados em que trabalham. Os dados com os quais eles lidam são enormes e requerem um manuseio eficiente. Os índices no DBMS ajudam a aumentar o desempenho de consultas como buscar e atualizar dados. Imagine uma coleção que possui centenas de documentos. Para localizar documentos que correspondam a um filtro específico, o MongoDB precisaria comparar o filtro a todos os documentos presentes na coleção, o que é tedioso e demorado. Em vez de indexar documentos (campos), reduzirá o tempo de pesquisa significativamente. Neste tópico, vamos aprender sobre o MongoDB create Index.

Índices são estruturas de dados que são empacotadas com conjunto de dados parciais em si. O índice armazena o valor de um (s) campo (s) específico (s) em documentos de maneira ordenada que suporta operações como comparadores, equadores e consultas baseadas em intervalo em ordem sequencial.

A sintaxe básica para criar índice

db.collectionName.createIndex(, )

ChavesChaves é um documento que contém um par de valores de campo em que o campo é chave de índice e valor é o tipo de índice.

Por exemplo, o valor é 1 para classificar a chave de índice em ordem crescente e -1 em ordem decrescente

OpçõesOpção (s) é um documento que contém um conjunto de opções que influencia a criação de índices. Essas opções são opcionais.

Tipos de índices

Aqui estão os tipos de índices mencionados abaixo

1. ID padrão

Cada documento presente na coleção Mongo contém um índice

padrão chamado "_id". Um ID de objeto é criado durante a criação do documento se nenhum valor de índice estiver presente.

2. Campo único

A indexação é realizada em um único campo e a operação de classificação é crescente ou decrescente, pois o MongoDB pode percorrer em qualquer direção.

Exemplo: db.collection.createIndex (("age": 1))

3. Índice Composto

O MongoDB suporta índices definidos pelo usuário em vários campos. A ordem dos campos dados no índice composto é bastante significativa. A ordem de classificação leva da esquerda para a direita, a prioridade gravada no primeiro campo mencionado nos índices compostos é maior do que no próximo.

Exemplo: db.collection.createIndex (("age": 1, "dim.h": - 1)). Neste exemplo, todos os documentos com campo de idade são primeiro classificados em ordem crescente e depois em ordem decrescente de altura em dim.

4. Índice Multikey

O MongoDB usa o Índice Multikey para indexar dados que estão em um formato de matriz. Durante a indexação, cada elemento da matriz é criado em um índice separado e os dados são indexados com base nos elementos presentes na matriz. O MongoDB cuida se o campo de índice tiver uma matriz por padrão.

5. Índice Geoespacial

O MongoDB usa a indexação geoespacial para encontrar dados com base em sua localização. Ele suporta dois tipos de pesquisa: 2D (bidimensional) e 3D (tridimensional). Esses índices são usados ​​para obter resultados dentro de um intervalo. O número de resultados da pesquisa também pode ser limitado usando a função limit ().

Exemplo: db.players.find ((loc: ($ near: ($ geometry: (type: “high_school”, sport: ”basketball” idade: (14, 17)))))). Este exemplo encontrará todas as entradas de alunos que estão na escola secundária, jogam basquete e têm idade entre 14 e 17 anos.

6. Índice de texto

O MongoDB fornece indexação de texto para suportar consultas no formato de string. O índice de texto pode ter quaisquer campos que consistam em elementos de sequência ou uma matriz de elementos de sequência.
Exemplo: db.movies.find (($ text: ($ search: “tom hardy”))). Este exemplo encontrará todos os documentos que possuem nomes de atores como tom hanks, tom felton, tom hiddelson e robert hardy e John Hardy. O MongoDB usa a string fornecida para pesquisa e fornece todos os documentos que possuem uma string de pesquisa completa ou parcial.

7. Índice hash

O MongoDB usa um índice de hash para suportar sharding. Os índices de hash calculam o valor de hash dos campos de índice usando uma função de hash. Ele não suporta indexação de várias chaves (valores de matriz). Os índices de hash são criados usando a função createIndex e o valor do campo de índice deve sempre ser 'hash'.

Exemplo: db.collection.createIndex ((: “hashed”)) . Para localizar os documentos com valores de hash, db.collection.find ((: Math.pow (2, 63))) retornará todos os documentos com índices de hash no intervalo 2 63.

Opções para indexação

1. Índice exclusivo

Como o nome sugere, índices únicos são únicos por natureza. O MongoDB não permite valores duplicados se um índice for criado usando a opção "exclusivo". Para especificar que um índice é exclusivo ao criar o índice, o seguinte formato deve ser usado.

db.collection.createIndex (, (exclusivo: verdadeiro)) . As restrições exclusivas podem ser impostas no índice composto, no índice multikey e no índice de texto.

2. Índice parcial

Índices parciais indexam documentos de uma coleção com base em um filtro ou expressão específica. Como os índices parciais são indexados, apenas um subgrupo dos requisitos de espaço de coleta (memória) é menor e isso também resulta em desempenho reduzido.

Exemplo :

db.pupils.createIndex ((name: 1), (parcialFilterExpression: (age: ($ gt: 5)))
Expressões de filtro suportadas:

  • $ gt, $ gte, $ lt, $ lte (maior que, maior que ou igual a, menor que e menor que ou igual)
  • Operadores $ type
  • $ existe: operação verdadeira
  • Operador de igualdade ($ eq)
  • Operações lógicas e / ou

3. índice TTL

TTL indexa um tipo especial de índices de chave única que podem ser excluídos da coleção MongoDB após um tempo limite ou em um horário específico. Alguns aplicativos que registram dados gerados por máquina ou logs que eventualmente seriam inválidos após algum período acham isso muito útil.

Exemplo:

db.log.createIndex (("lastModifiedDate": 1), (expireAfterSeconds: 10000))

4. Índice esparso

Os índices esparsos indexam apenas os documentos que contêm o valor do campo do índice. Ele ignora todos os outros documentos que não contêm o campo. Por padrão, índices não esparsos contêm todos os documentos nas coleções, com nulo como valor para os campos que não estão presentes.

Exemplo:

db.pupil.createIndex (("age": 1), (sparse: true))
O índice não indexa documentos que não contêm a idade do campo.

5. Índice sem distinção entre maiúsculas e minúsculas

Os índices sem distinção entre maiúsculas e minúsculas são usados ​​para oferecer suporte a consultas que executam comparações de cadeias sem qualquer respeito à distinção entre maiúsculas e minúsculas.

Exemplo:

db.collection.createIndex (("chave": 1), (agrupamento:))

Agrupamento:

O documento de agrupamento é usado para especificar regras de idioma, maiúsculas e minúsculas etc. para comparação de cadeias.

Os documentos de agrupamento consistem no seguinte:

Conclusão - MongoDB create Index

Em conclusão, a indexação é crucial para uma execução mais rápida de consultas e gerenciamento de memória. Os índices podem ser criados, modificados de acordo com os requisitos dos usuários e descartados quando não forem necessários.

Artigos recomendados

Este é um guia para o MongoDB criar Índice. Aqui discutimos os tipos de índices e opções para indexação, juntamente com os exemplos. Você também pode consultar o seguinte artigo para saber mais -

  1. Ferramentas MongoDB
  2. O que é o MongoDB?
  3. Replicação no MongoDB
  4. Vantagens do MongoDB