Tutorial de indexação do MongoDB - createIndex (), dropindex () Exemplo

Índice:

Anonim

Os índices são muito importantes em qualquer banco de dados e com o MongoDB não é diferente. Com o uso de índices, a realização de consultas no MongoDB se torna mais eficiente.

Se você tivesse uma coleção com milhares de documentos sem índices e, em seguida, fizesse uma consulta para encontrar certos documentos, então, nesse caso, o MongoDB precisaria verificar toda a coleção para encontrar os documentos. Mas se você tivesse índices, o MongoDB usaria esses índices para limitar o número de documentos que precisavam ser pesquisados ​​na coleção.

Os índices são conjuntos de dados especiais que armazenam uma parte parcial dos dados da coleção. Como os dados são parciais, fica mais fácil ler esses dados. Este conjunto parcial armazena o valor de um campo específico ou um conjunto de campos ordenados pelo valor do campo.

Neste tutorial, você aprenderá -

  • Compreendendo o impacto dos índices
  • Como criar índices: createIndex ()
  • Como encontrar índices: getindexes ()
  • Como descartar índices: dropindex ()

Compreendendo o impacto dos índices

Agora, embora desde a introdução, vimos que os índices são bons para consultas, mas ter muitos índices pode retardar outras operações, como a operação Inserir, Excluir e Atualizar.

Se houver operações frequentes de inserção, exclusão e atualização realizadas em documentos, os índices precisariam ser alterados com frequência, o que seria apenas uma sobrecarga para a coleção.

O exemplo a seguir mostra um exemplo de quais valores de campo podem constituir um índice em uma coleção. Um índice pode ser baseado em apenas um campo da coleção ou em vários campos da coleção.

No exemplo abaixo, Employeeid "1" e EmployeeCode "AA" são usados ​​para indexar os documentos na coleção. Portanto, quando uma pesquisa de consulta é feita, esses índices serão usados ​​para localizar de forma rápida e eficiente os documentos necessários na coleção.

Portanto, mesmo que a consulta de pesquisa seja baseada no Código do Funcionário "AA", esse documento será retornado.

Como criar índices: createIndex ()

A criação de um índice no MongoDB é feita usando o método " createIndex ".

O exemplo a seguir mostra como adicionar índice à coleção. Vamos supor que temos nossa mesma coleção Employee com os nomes de campo "Employeeid" e "EmployeeName".

db.Employee.createIndex({Employeeid:1})

Explicação do código:

  1. O método createIndex é usado para criar um índice baseado no "Employeeid" do documento.
  2. O parâmetro '1' indica que quando o índice é criado com os valores do campo "Employeeid", eles devem ser classificados em ordem crescente. Observe que isso é diferente do campo _id (o campo id é usado para identificar exclusivamente cada documento na coleção), que é criado automaticamente na coleção pelo MongoDB. Os documentos agora serão classificados de acordo com o Employeeid e não com o campo _id.

Se o comando for executado com sucesso, a seguinte saída será mostrada:

Resultado:

  1. O numIndexesBefore: 1 indica o número de valores de campo (os campos reais na coleção) que estavam nos índices antes de o comando ser executado. Lembre-se de que cada coleção possui o campo _id que também conta como um valor de campo para o índice. Como o campo de índice _id faz parte da coleção quando é inicialmente criado, o valor de numIndexesBefore é 1.
  2. O numIndexesAfter: 2 indica o número de valores de campo que existiam nos índices depois que o comando foi executado.
  3. Aqui, a saída "ok: 1" especifica que a operação foi bem-sucedida e o novo índice é adicionado à coleção.

O código acima mostra como criar um índice com base em um valor de campo, mas também é possível criar um índice com base em vários valores de campo.

O exemplo a seguir mostra como isso pode ser feito;

db.Employee.createIndex({Employeeid:1, EmployeeName:1])

Explicação do código:

  1. O método createIndex agora leva em consideração vários valores de Field que farão com que o índice seja criado com base em "Employeeid" e "EmployeeName". O Employeeid: 1 e EmployeeName: 1 indicam que o índice deve ser criado nesses 2 valores de campo com: 1 indicando que deve estar em ordem crescente.

Como encontrar índices: getindexes ()

Encontrar um índice no MongoDB é feito usando o método "getIndexes" .

O exemplo a seguir mostra como isso pode ser feito;

db.Employee.getIndexes()

Explicação do código:

  1. O método getIndexes é usado para localizar todos os índices em uma coleção.

Se o comando for executado com sucesso, a seguinte saída será mostrada:

Resultado:

  1. A saída retorna um documento que mostra apenas que há 2 índices na coleção que é o campo _id e o outro é o campo ID do funcionário. O: 1 indica que os valores do campo no índice são criados em ordem crescente.

Como descartar índices: dropindex ()

A remoção de um índice no MongoDB é feita usando o método dropIndex.

O exemplo a seguir mostra como isso pode ser feito;

db.Employee.dropIndex(Employeeid:1)

Explicação do código:

  1. O método dropIndex usa os valores de campo obrigatórios que precisam ser removidos do índice.

Se o comando for executado com sucesso, a seguinte saída será mostrada:

Resultado:

  1. O nIndexesWas: 3 indica o número de valores de campo que existiam nos índices antes de o comando ser executado. Lembre-se de que cada coleção possui o campo _id que também conta como um valor de campo para o índice.
  2. A saída ok: 1 especifica que a operação foi bem-sucedida e o campo "Employeeid" é removido do índice.

Para remover todos os índices de uma vez na coleção, pode-se usar o comando dropIndexes.

O exemplo a seguir mostra como isso pode ser feito.

db.Employee.dropIndex()

Explicação do código:

  1. O método dropIndexes eliminará todos os índices, exceto o índice _id.

Se o comando for executado com sucesso, a seguinte saída será mostrada:

Resultado:

  1. O nIndexesWas: 2 indica o número de valores de campo que existiam nos índices antes de o comando ser executado.
  2. Lembre-se novamente de que cada coleção possui o campo _id que também conta como um valor de campo para o índice e que não será removido pelo MongoDB e é isso que esta mensagem indica.
  3. A saída ok: 1 especifica que a operação foi bem-sucedida.

Resumo

  • A definição de índices é importante para uma pesquisa mais rápida e eficiente de documentos em uma coleção.
  • Os índices podem ser criados usando o método createIndex. Os índices podem ser criados em apenas um campo ou em vários valores de campo.
  • Os índices podem ser encontrados usando o método getIndexes.
  • Os índices podem ser removidos usando dropIndex para índices únicos ou dropIndexes para descartar todos os índices.