Overview
En esta página, puede ver ejemplos de código copiables que muestran funciones comunes que puede usar para recuperar documentos mediante el controlador C.
Tip
Para obtener más información sobre cualquiera de las funciones que se muestran en esta página, consulte el enlace a la guía correspondiente que se proporciona en cada sección.
Para utilizar un ejemplo de esta página, copie el ejemplo de código en el
Aplicación de ejemplo o su propia aplicación. Asegúrese de reemplazar todos los marcadores de posición en los ejemplos de código, como <connection string URI>, con los valores relevantes para su implementación de MongoDB.
Aplicación de muestra
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:
Asegúrate de tener instalado el controlador C.
Copia el siguiente código y pégalo en un nuevo archivo
.c.Copia un ejemplo de código de esta página y pégalo en las líneas especificadas del archivo.
1 2 3 4 5 int 6 main(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 Descargue e instale en la guía de Introducción.
Buscar documentos
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.
Contar documentos en una colección
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 mongoc_collection_count_documents() función, consulte la sección Recuperar un recuento preciso de la guía Contar documentos.
Contar documentos devueltos de una query
El siguiente ejemplo devuelve la cantidad 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 mongoc_collection_count_documents() función, consulte la sección Recuperar un recuento preciso de la guía Contar documentos.
Recuento estimado de documentos
El siguiente ejemplo devuelve un número aproximado de documentos en la colección especificada según 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 mongoc_collection_estimated_document_count() función, consulte la sección Recuperar un recuento estimado de la guía Contar documentos.
Retrieve Distinct Values
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 obtener más información sobre el distinct comando, consulte la guía Recuperar valores de campos distintos.
Supervisar los cambios en los datos
El siguiente ejemplo crea un flujo de cambios para una colección determinada 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 mongoc_collection_watch() función, consulte la guía Monitorear cambios de datos.