Docs Menu
Docs Home
/ /

Multikey Indexes

Los índicesmulticlave mejoran el rendimiento de las consultas en campos con valores de matriz. Se pueden definir con la misma sintaxis que los índices de campo único o compuestos.

Los ejemplos de esta guía utilizan el movies colección en la base de datos sample_mflix de la Conjuntos de datos de ejemplo de Atlas. Para aprender a crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de ejemplo, consulte la guía de introducción a MongoDB.

El siguiente ejemplo crea un índice multiclave en el campo cast:

bson_error_t error;
bson_t *keys = BCON_NEW("cast", 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 ejemplo realiza una consulta que utiliza el índice creado en el ejemplo de código anterior:

const bson_t *doc;
bson_t *filter = BCON_NEW("cast", BCON_UTF8("Viola Davis"));
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" : ..., "cast" : [ "Kelsey Grammer", "Cary Elwes", "Viola Davis", "John C. McGinley" ], "title" : "The Pentagon Wars", ... }
{ "_id" : ..., "cast" : [ "George Clooney", "Natascha McElhone", "Viola Davis", "Jeremy Davies" ], "title" : "Solaris", ... }
{ "_id" : ..., "cast" : [ "Meryl Streep", "Philip Seymour Hoffman", "Amy Adams", "Viola Davis" ], "title" : "Doubt", ... }
{ "_id" : ..., "cast" : [ "Hugh Jackman", "Jake Gyllenhaal", "Viola Davis", "Maria Bello" ], "title" : "Prisoners", ... }
{ "_id" : ..., "cast" : [ "Emma Stone", "Viola Davis", "Bryce Dallas Howard", "Octavia Spencer" ], "title" : "The Help", ... }
...

Los índices Multikey funcionan de manera diferente a otros índices en términos de cobertura de consultas, cálculo de límites del índice y comportamiento de ordenación. Para aprender más sobre los índices multikey, incluido un debate sobre su comportamiento y limitaciones, consulta la guía Índices Multikey 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

Índices compuestos

En esta página