Docs Menu
Docs Home
/ /

Ejecutar una consulta de búsqueda de MongoDB

En esta guía, puede aprender a utilizar el controlador C para ejecutar Consultas deMongoDB Search en una colección. MongoDB Search permite realizar búsquedas de texto completo en colecciones alojadas en MongoDB Atlas. Los índices de MongoDB Search especifican el comportamiento de la búsqueda y los campos que se indexan.

El ejemplo de esta guía utiliza el movies Colección 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, consulte la guía de introducción.

Esta sección muestra cómo crear una canalización de agregación para ejecutar una consulta de búsqueda de MongoDB en una colección. En la estructura bson_t que representa las etapas de la canalización, agregue la etapa $search para especificar los criterios de búsqueda. A continuación, llame a la función mongoc_collection_aggregate() y pase la canalización como parámetro.

Tip

Para obtener más información sobre las operaciones de agregación, consulte Guíade agregación.

Antes de ejecutar una consulta de búsqueda de MongoDB, debe crear un índice de búsqueda de MongoDB en su colección. Para aprender a crear un índice de búsqueda de MongoDB mediante programación, consulte la sección "Crear un índice de búsqueda" de la guía "Índices de búsqueda de MongoDB".

Este ejemplo ejecuta una consulta de búsqueda de MongoDB realizando las siguientes acciones:

  • Crea una etapa $search que indica al controlador que consulte documentos en los que el campo title contiene la palabra "Alabama"

  • Crea una etapa $project que indica al controlador que incluya el campo title en los resultados de la consulta

  • Pasa las etapas de la canalización a la función mongoc_collection_aggregate() e imprime 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" }

Para obtener más información sobre MongoDB Search, consulte MongoDB Search en la documentación de Atlas.

Para obtener más información sobre la mongoc_collection_aggregate() función, consulte la documentación de la API.

Volver

Ejecute un comando de base de datos

En esta página