Overview
Los índices de campo único son índices que hacen referencia a un único campo en los documentos de una colección. Mejoran el rendimiento de las queries de campo único y de la ordenación, y admiten Índices TTL que remueven automáticamente documentos de una colección tras un período de tiempo determinado o en un horario definido.
Al crear un índice de campo único, debe especificar lo siguiente:
El campo en el que se debe crear el índice.
El orden de clasificación para los valores con índice (ascendente o descendente). Especifica
BCON_INT32(1)para orden ascendente yBCON_INT32(-1)para orden descendente.
Nota
El índice _id_ es un ejemplo de un índice de campo único. Este índice se crea automáticamente en el campo _id cuando se crea una nueva colección.
Datos de muestra
Los ejemplos en esta guía utilizan la colección movies en la base de datos sample_mflix de los conjuntos de datos de muestra de Atlas. Para aprender a crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de muestra, consulta la guía MongoDB Primeros Pasos.
Crear un índice de campo único
El siguiente ejemplo crea un índice en orden ascendente en el 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);
El siguiente es un ejemplo de una query que está cubierta por el índice creado en el ejemplo 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", ... }
Información Adicional
Para obtener más información acerca de los índices de campo único, ver Índices de campo único en el manual de MongoDB Server.
Documentación de la API
Para aprender más sobre alguna de las funciones tratadas en esta guía, consulta la siguiente documentación de la API: