MongoDB Indexação: createIndex() e dropIndex()
⚡ Resumo Inteligente
MongoDB Os índices armazenam um subconjunto ordenado dos campos de uma coleção, permitindo que as consultas localizem documentos sem precisar examinar todos os registros. Os métodos `createIndex`, `getIndexes` e `dropIndex` criam, listam e removem essas estruturas essenciais para o desempenho.

Quais são MongoDB Índices?
Os índices são muito importantes em qualquer banco de dados, e com MongoDB Não há diferença. Com o uso de índices, a execução de consultas em MongoDB fica mais eficiente.
Se você tivesse uma coleção com milhares de documentos sem índices e, em seguida, fizesse uma consulta para encontrar determinados documentos, então, nesse caso... MongoDB precisaria digitalizar toda a coleção para encontrar os documentos. Mas se você tivesse índices, MongoDB usaria esses índices para limitar o número de documentos que deveriam 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, tornam-se mais fáceis de ler. Esse conjunto parcial armazena o valor de um campo específico, ou de um conjunto de campos, ordenados pelo valor do campo.
Compreendendo o impacto dos índices
Embora a introdução tenha demonstrado que os índices são benéficos para consultas, o excesso de índices pode tornar outras operações, como as de inserção, exclusão e atualização, mais lentas.
Se operações frequentes de inserção, exclusão e atualização forem realizadas nos documentos, os índices precisarão ser alterados com frequência, o que representará uma sobrecarga para a coleção.
O exemplo abaixo mostra 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, o ID do funcionário é “1” e o funcionário éCode Os índices “AA” são usados para indexar os documentos da coleção. Assim, quando uma consulta de pesquisa é realizada, esses índices serão usados para encontrar os documentos necessários na coleção de forma rápida e eficiente.
Portanto, mesmo que a consulta de pesquisa seja baseada no funcionárioCode “AA”, esse documento seria devolvido.
Como criar índices: createIndex()
Criando um índice em MongoDB é feito usando o criarIndex método.
O exemplo a seguir mostra como adicionar um índice a uma coleção. Vamos supor que temos nossa coleção de Funcionários, que possui os campos "Employeeid" e "EmployeeName".
db.Employee.createIndex({Employeeid:1})
Code Explicação:
- O criarIndex O método é usado para criar um índice baseado no “Employeeid” do documento.
- O parâmetro “1” indica que, quando o índice for criado com os valores do campo “Employeeid”, eles deverão ser classificados em ordem crescente. Observe que isso é diferente do campo _id (que identifica exclusivamente cada documento). MongoDB é criado automaticamente. Os documentos agora serão classificados pelo Employeeid e não pelo campo _id.
Se o comando for executado com sucesso, a seguinte saída será exibida:
Saída:
- O parâmetro `numIndexesBefore: 1` indica o número de valores de campo nos índices antes da execução do comando. Cada coleção possui o campo `_id`, que também conta como um valor de campo, portanto, `numIndexesBefore` é igual a 1.
- O valor numIndexesAfter: 2 indica a quantidade de valores de campo nos índices após a execução do comando.
- A saída “ok: 1” especifica que a operação foi bem-sucedida e o novo índice foi adicionado à coleção.
O código acima mostra como criar um índice com base no valor de um único 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})
O método createIndex agora leva em consideração múltiplos valores de campo, o que fará com que o índice seja criado com base em “Employeeid” e “EmployeeName”. Employeeid:1 e EmployeeName:1 indicam que o índice deve ser criado com base nesses dois valores de campo, sendo :1 indicativo de ordem crescente. Isso é conhecido como índice composto.
Como encontrar índices: getIndexes()
Encontrando um índice em MongoDB é feito usando o obterÍndices método. O exemplo a seguir mostra como isso pode ser feito:
db.Employee.getIndexes()
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á exibida:
Saída:
O resultado retorna um documento que mostra que existem dois índices na coleção: o campo _id e o campo Employeeid. O valor :1 indica que os valores dos campos no índice são criados em ordem crescente.
Como remover índices: dropIndex()
Remover um índice em MongoDB é feito usando o dropIndex método. O exemplo a seguir mostra como isso pode ser feito:
db.Employee.dropIndex({Employeeid:1})
O método dropIndex recebe os valores dos campos que precisam ser removidos do índice.
Se o comando for executado com sucesso, a seguinte saída será exibida:
Saída:
- O valor nIndexesWas: 3 indica a quantidade de valores de campo nos índices antes da execução do comando. Cada coleção possui o campo _id, que também é contabilizado como um valor de campo.
- 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 só vez em uma coleção, pode-se usar o comando `dropIndexes`. O exemplo a seguir mostra como isso pode ser feito:
db.Employee.dropIndexes()
O método dropIndexes eliminará todos os índices, exceto o índice _id.
Se o comando for executado com sucesso, a seguinte saída será exibida:
Saída:
- O valor nIndexesWas: 2 indica o número de valores de campo nos índices antes da execução do comando.
- Cada coleção possui o campo _id, que também conta como um valor de campo e não será removido por MongoDBÉ isso que esta mensagem indica.
- A saída ok: 1 especifica que a operação foi bem-sucedida.










