Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Leer datos

En esta página, puedes ver ejemplos de código copiables que muestran funciones comunes que puedes usar para recuperar documentos utilizando el controlador C.

Tip

Para aprender más sobre cualquiera de las funciones mostradas en esta página, consulta el enlace a una guía relevante que se proporciona en cada sección.

Para usar un ejemplo de esta página, copie el ejemplo de código en la aplicación de muestra o en su propia aplicación. Asegúrate de reemplazar todos los marcadores de posición en los ejemplos de código, como <connection string URI>, por los valores relevantes para tu implementación de MongoDB.

Puede utilizar la siguiente aplicación de muestra para probar los ejemplos de código en esta página. Para usar la aplicación de muestra, siga los siguientes pasos:

  1. Asegúrate de tener instalado el controlador C.

  2. Copia el siguiente código y pégalo en un nuevo archivo .c.

  3. Copia un ejemplo de código de esta página y pégalo en las líneas especificadas del archivo.

1#include <bson/bson.h>
2#include <mongoc/mongoc.h>
3#include <stdio.h>
4
5int
6main(void)
7{
8 char *str;
9 bson_error_t error;
10
11 mongoc_init();
12
13 mongoc_client_t *client = mongoc_client_new("<connection string URI>");
14 mongoc_collection_t *collection = mongoc_client_get_collection(client, "<database name>", "collection name");
15
16 // Start example code here
17
18 // End example code here
19
20 mongoc_collection_destroy(collection);
21 mongoc_client_destroy(client);
22 mongoc_cleanup();
23
24 return EXIT_SUCCESS;
25}

Tip

Para obtener instrucciones sobre cómo instalar el controlador C, consulte Descargar e instalar en la guía de introducción.

El siguiente ejemplo recupera una lista de documentos que coinciden con los criterios especificados por el filtro dado:

bson_t *query = bson_new();
// Add fields to query here
mongoc_cursor_t* results = mongoc_collection_find_with_opts(collection, query, NULL, NULL);
const bson_t *doc;
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(query);

Para obtener más información sobre la función mongoc_collection_find_with_opts(), consulta la guía Buscar Documentos.

El siguiente ejemplo devuelve el número de documentos en la colección especificada:

bson_t *query = bson_new();
int64_t count =
mongoc_collection_count_documents(collection, query, NULL, NULL, NULL, &error);
printf("%" PRId64 "\n", count);
bson_destroy(query);

Para obtener más información sobre la función mongoc_collection_count_documents(), consulta la sección Recuperar un recuento preciso de la guía Contar documentos.

El siguiente ejemplo devuelve el número de documentos que coinciden con los criterios especificados por el filtro dado:

bson_t *query = bson_new();
// Add fields to query here
int64_t count =
mongoc_collection_count_documents(collection, query, NULL, NULL, NULL, &error);
printf("%" PRId64 "\n", count);
bson_destroy(query);

Para obtener más información sobre la función mongoc_collection_count_documents(), consulta la sección Recuperar un recuento preciso de la guía Contar documentos.

El siguiente ejemplo devuelve un número aproximado de documentos en la colección especificada en función de los metadatos de la colección:

int64_t count =
mongoc_collection_estimated_document_count(collection, NULL, NULL, NULL, &error);
printf("%" PRId64 "\n", count);

Para obtener más información sobre la función mongoc_collection_estimated_document_count(), consulta la sección Recuperar un conteo estimado de la guía Contar documentos.

El siguiente ejemplo devuelve todos los valores distintos del nombre de campo especificado en una colección determinada:

bson_t reply;
bson_t *command = BCON_NEW("distinct",
BCON_UTF8("<collection name>"),
"key",
BCON_UTF8("<field name>"));
if (!mongoc_collection_read_command_with_opts(collection, command, NULL, NULL, &reply, &error)) {
fprintf(stderr, "An error occurred: %s\n", error.message);
} else {
char *str = bson_as_canonical_extended_json(&reply, NULL);
printf("%s\n", str);
bson_free(str);
}
bson_destroy(&reply);
bson_destroy(command);

Para aprender más sobre el comando distinct, consulta la guía Recuperar valores de campo distintos.

El siguiente ejemplo crea un flujo de cambios para una colección dada e imprime los eventos de cambio posteriores en esa colección:

mongoc_change_stream_t *change_stream;
bson_t *pipeline = bson_new();
// Add stages to pipeline here
const bson_t *doc;
change_stream = mongoc_collection_watch(collection, pipeline, NULL);
while (mongoc_change_stream_next(change_stream, &doc)) {
char *str = bson_as_canonical_extended_json(doc, NULL);
printf("Change: %s\n", str);
bson_free(str);
}
bson_destroy(pipeline);
mongoc_change_stream_destroy(change_stream);

Para obtener más información sobre la función mongoc_collection_watch(), consulta la guía Supervisar cambios en los datos.