Menu Docs
Página inicial do Docs
/ / /
Driver C++
/

Trabalhar com Índices

Nesta página

  • Visão geral
  • Considerações operacionais
  • Dados de amostra
  • Crie um índice
  • Índices de campo único
  • Remover um Índice
  • Remover um único índice
  • Remover todos os índices
  • Informações adicionais
  • Documentação da API

Neste guia, você pode aprender como usar índices com o driver C++ . Os índices podem melhorar a eficiência das queries e adicionar funcionalidades à consulta e ao armazenamento de documentos.

Sem índices, o MongoDB deve digitalizar todos os documentos em uma collection para encontrar os documentos que correspondem a cada query. Essas verificações da collection são lentas e podem afetar negativamente o desempenho do seu aplicativo. No entanto, se existir um índice apropriado para uma query, o MongoDB poderá usar o índice para limitar os documentos que deve inspecionar.

Para melhorar o desempenho da query, crie índices em campos que aparecem com frequência nas queries e operações do seu aplicativo que retornam resultados ordenados. Cada índice adicionado consome espaço em disco e memória quando ativo, portanto, recomendamos que você acompanhe a memória do índice e o uso do disco para o planejamento da capacidade. Além disso, quando uma operação de gravação atualiza um campo indexado, MongoDB também atualiza qualquer índice relacionado.

Como o MongoDB oferece suporte a esquemas dinâmicos, os aplicativos podem executar consulta dos campos cujos nomes não são conhecidos antecipadamente ou são arbitrários. O MongoDB 4.2 introduziu índices curinga para ajudar a apoiar essas queries. Os índices curinga não são projetados para substituir o planejamento de índice baseado em volume de trabalho.

Para obter mais informações sobre como projetar seu modelo de dados e escolher os índices apropriados para seu aplicação, consulte o guia Modelagem de dados e índices no manual do MongoDB Server .

Os exemplos neste guia usam a collection sample_mflix.movies dos conjuntos de dados de amostra do Atlas. Para saber como criar um cluster gratuito do MongoDB Atlas e carregar os conjuntos de dados de exemplo, consulte Introdução ao driver C++ .

O MongoDB suporta vários tipos de índice diferentes para auxiliar na consulta de seus dados. As seções a seguir descrevem os tipos de índice mais comuns e fornecem código de amostra para criar cada tipo de índice.

Os índices de campo único são índices com uma referência a um único campo dentro dos documentos de uma coleção. Elas melhoram o desempenho da consulta de campo único e da classificação e oferecem suporte a índices TTL (time to live), que removem automaticamente documentos de uma collection após um determinado período de tempo ou em um horário específico. Você pode especificar a ordem de classificação das entradas de índice especificando 1 para crescente ou -1 para decrescente.

Observação

O índice _id_ é um exemplo de um índice de campo único. Este índice é criado automaticamente no campo _id quando uma nova coleção é criada.

O exemplo seguinte cria um índice de campo único em ordem crescente no campo title :

auto index_specification = make_document(kvp("title", 1));
collection.create_index(index_specification.view());

Para saber mais sobre índices de campo único, consulte Índices de campo único no manual do MongoDB Server .

Você pode remover qualquer índice não utilizado, exceto o índice exclusivo padrão no campo _id.

As seções a seguir mostram como remover um único índice e como remover todos os índices em uma collection.

Passe uma instância de um índice ou o nome do índice para o método drop_one() para remover um índice de uma coleção.

O exemplo seguinte remove um índice com o nome "title_1" da coleção movies :

collection.indexes().drop_one("title_1");

Observação

Não é possível remover um único campo de um índice de texto composto. Você deve soltar o índice inteiro e criar um novo para atualizar os campos indexados.

A partir do MongoDB 4.2, você pode soltar todos os índices ligando para o método drop_all() na visualização de índice em sua coleção:

collection.indexes().drop_all();

Para versões anteriores do MongoDB, passe "*" como parâmetro para sua chamada para drop_one() na visualização de índice em sua collection:

collection.indexes().drop_one("*");

Para saber mais sobre índices no MongoDB, consulte o guia Índices no manual do MongoDB Server .

Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API:

Voltar

Otimizar queries com índices