Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Índices de un solo campo

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 y BCON_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.

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.

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", ... }

Para obtener más información acerca de los índices de campo único, ver Índices de campo único en el manual de MongoDB Server.

Para aprender más sobre alguna de las funciones tratadas en esta guía, consulta la siguiente documentación de la API:

Volver

Indexes

En esta página