Overview
En esta guía, puedes aprender a usar el driver C para ejecutar consultas de búsqueda de MongoDB en una colección. MongoDB Search permite realizar búsquedas de texto completo en las colecciones alojadas en MongoDB Atlas. Los índices de búsqueda de MongoDB Search especifican el comportamiento de la búsqueda y los campos que se deben indexar.
Datos de muestra
El ejemplo de esta guía utiliza 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 ejemplo, consulta la Guía de inicio.
Ejecuta una MongoDB Search query
Esta sección muestra cómo crear una pipeline de agregación para ejecutar una consulta de MongoDB Search en una colección. En su estructura bson_t que representa las etapas de su pipeline, añada la etapa $search para especificar los criterios de búsqueda. Luego, llama a la función mongoc_collection_aggregate() y pasa tu pipeline como parámetro.
Tip
Para obtener más información sobre las operaciones de agregación, consulta la guía de Agregación.
Antes de ejecutar una query de MongoDB Search, debes crear un índice de MongoDB Search en tu colección. Para aprender cómo crear programáticamente un índice de búsqueda en MongoDB, consulta la sección Crear un índice de búsqueda de la guía MongoDB Search Indexes.
MongoDB Search Ejemplo
Este ejemplo ejecuta una consulta de MongoDB Search realizando las siguientes acciones:
Crea una etapa
$searchque indica al driver que haga queries para documentos en los que el campotitlecontenga la palabra"Alabama"Crea una etapa
$projectque instruya al driver para incluir el campotitleen los resultados de la query.Pasa las etapas de la pipeline a la función
mongoc_collection_aggregate()y muestra los resultados
const bson_t *doc; bson_t *pipeline = BCON_NEW("pipeline", "[", "{", "$search", "{", "index", BCON_UTF8("<index name>"), "text", "{", "query", BCON_UTF8("Alabama"), "path", BCON_UTF8("title"), "}", "}", "}", "{", "$project", "{", "title", BCON_INT32(1), "}", "}", "]"); mongoc_cursor_t *results = mongoc_collection_aggregate(collection, MONGOC_QUERY_NONE, pipeline, NULL, NULL); while (mongoc_cursor_next(results, &doc)) { char *str = bson_as_canonical_extended_json(doc, NULL); printf("%s\n", str); bson_free(str); } bson_destroy(pipeline); mongoc_cursor_destroy(results);
{ "_id" : { "$oid" : "..." }, "title" : "Alabama Moon" } { "_id" : { "$oid" : "..." }, "title" : "Sweet Home Alabama" } { "_id" : { "$oid" : "..." }, "title" : "Crazy in Alabama" }
Información Adicional
Para obtener más información sobre MongoDB Search, consulte la MongoDB Search en la documentación de Atlas.
Documentación de la API
Para obtener más información sobre la función mongoc_collection_aggregate(), consulta la documentación de la API.