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

Índices de campo único

Nesta página

  • Visão geral
  • Dados de amostra
  • Criar Índice de Campo Único
  • Informações adicionais
  • Documentação da API

Os índices de campo único são índices com uma referência a um único campo dentro dos documentos de uma coleção. Eles melhoram o desempenho da consulta de campo único e da classificação e oferecem suporte a índices TTL que removem automaticamente documentos de uma coleção após um determinado período de tempo ou em um horário específico.

Ao criar um índice de campo único, você deve especificar o seguinte:

  • O campo no qual criar o índice.

  • A ordem de classificação para os valores indexados (crescente ou decrescente). Especifique BCON_INT32 (1) para ordem crescente e BCON_INT32 (-1) para ordem 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.

Os exemplos neste guia usam a collection movies no banco de dados sample_mflix dos conjuntos de banco de dados de amostra do Atlas. Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia Iniciar com Atlas .

O exemplo a seguir cria um índice em ordem crescente no campo title:

bson_error_t error;
bson_t *keys = BCON_NEW ("title", BCON_INT32 (1));
mongoc_index_model_t *index_model = mongoc_index_model_new (keys, NULL);
if (mongoc_collection_create_indexes_with_opts (collection, &index_model, 1, NULL, NULL, &error)) {
printf ("Successfully created index\n");
} else {
fprintf (stderr, "Failed to create index: %s", error.message);
}
bson_destroy (keys);
mongoc_index_model_destroy (index_model);

O seguinte é um exemplo de uma consulta coberta pelo índice criado no exemplo de código anterior:

const bson_t *doc;
bson_t *filter = BCON_NEW ("title", "Batman");
mongoc_cursor_t *results =
mongoc_collection_find_with_opts (collection, filter, NULL, NULL);
while (mongoc_cursor_next (results, &doc)) {
char *str = bson_as_canonical_extended_json (doc, NULL);
printf ("%s\n", str);
bson_free (str);
}
mongoc_cursor_destroy (results);
bson_destroy (filter);
{ "_id" : ..., "title" : "Batman", ... }

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

Para saber mais sobre qualquer uma das funções discutidas nesta guia, consulte a seguinte documentação da API:

Voltar

Trabalhar com Índices