Docs Menu
Docs Home
/ /

Buscar documentos

En esta guía, aprenderá a usar el controlador C para buscar y recuperar documentos de una colección de MongoDB mediante operaciones de lectura. Puede llamar al mongoc_collection_find_with_opts() función para recuperar documentos que coinciden con un conjunto de criterios especificados en un filtro de consulta.

Los ejemplos de esta guía utilizan la colección restaurants en la base de datos sample_restaurants 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.

La mongoc_collection_find_with_opts() función utiliza un filtro de consulta y devuelve todos los documentos coincidentes de una colección. Un filtro de consulta es un documento que especifica los criterios que utiliza el controlador para buscar coincidencias en la colección.

Para obtener más información sobre los filtros de consulta, consulte la Especifique una guía de consulta.

El siguiente ejemplo utiliza la función mongoc_collection_find_with_opts() para encontrar todos los documentos en los que el valor del campo cuisine es "Spanish":

bson_t *filter = BCON_NEW("cuisine", BCON_UTF8("Spanish"));
mongoc_cursor_t *results =
mongoc_collection_find_with_opts(collection, filter, NULL, NULL);

La operación mongoc_collection_find_with_opts() del ejemplo anterior devuelve un mongoc_cursor_t *, que se puede iterar mediante la función mongoc_cursor_next() y un bucle while. El siguiente ejemplo itera e imprime los resultados de la consulta anterior:

const bson_t *doc;
bson_error_t error;
while (mongoc_cursor_next(results, &doc)) {
char *str = bson_as_canonical_extended_json(doc, NULL);
printf("%s\n", str);
bson_free(str);
}
// Ensure we iterated through cursor without error
if (mongoc_cursor_error(results, &error)) {
fprintf(stderr, "Error getting results: %s\n", error.message);
}
mongoc_cursor_destroy(results);
bson_destroy(filter);
{ "_id" : { "$oid" : "..." }, "name" : "Charle'S Corner Restaurant & Deli", "cuisine" : "Spanish", ... }
{ "_id" : { "$oid" : "..." }, "name" : "Real Madrid Restaurant", "cuisine" : "Spanish", ... }
{ "_id" : { "$oid" : "..." }, "name" : "Malaga Restaurant", "cuisine" : "Spanish", ... }
{ "_id" : { "$oid" : "..." }, "name" : "Cafe Espanol", "cuisine" : "Spanish", ... }
{ "_id" : { "$oid" : "..." }, "name" : "Cafe Riazor", "cuisine" : "Spanish", ... }
...

Nota

Encuentre todos los documentos

Para encontrar todos los documentos de una colección, pase un filtro vacío a la función mongoc_collection_find_with_opts():

bson_t *empty_filter = bson_new();
mongoc_cursor_t *results =
mongoc_collection_find_with_opts(collection, empty_filter, NULL, NULL);
mongoc_cursor_destroy(results);
bson_destroy(empty_filter);

Puede modificar el comportamiento de la función mongoc_collection_find_with_opts() pasando una estructura bson_t que contenga las opciones que desee configurar. La siguiente tabla describe las opciones que se utilizan habitualmente para modificar consultas:

Opción
Descripción

collation

Sets the collation options for the query.

comment

Specifies a string to attach to the query. This can help you trace and interpret the operation in the server logs and in profile data. To learn more about query comments, see the cursor.comment() page in the MongoDB Server manual.

hint

Specifies the index to use for the query.

limit

Limits the number of documents to be returned from the query.

maxTimeMS

Sets the maximum execution time on the server for this operation.

skip

Sets the number of documents to skip.

sort

Defines the sort criteria to apply to the query.

El siguiente ejemplo utiliza las opciones limit y maxTimeMS para limitar la cantidad de documentos devueltos por la consulta a 10 y establecer un tiempo de ejecución máximo de 10000 milisegundos en la operación:

bson_t *filter = BCON_NEW("cuisine", BCON_UTF8("Spanish"));
bson_t *opts = BCON_NEW("limit", BCON_INT32(10), "maxTimeMS", BCON_INT32(10000));
mongoc_cursor_t *results =
mongoc_collection_find_with_opts(collection, filter, opts, NULL);
mongoc_cursor_destroy(results);
bson_destroy(filter);
bson_destroy(opts);

Para obtener una lista completa de las opciones que modifican el comportamiento de,mongoc_collection_find_with_opts() consulte la documentación del método find en el manual de MongoDB Server.

Para más información sobre los filtros de query, consultar Especificar una query.

Para ver ejemplos de código ejecutables que recuperan documentos mediante el controlador C, consulte Leer datos.

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

Volver

Especifica un query

En esta página