Overview
En esta página, puedes ver ejemplos de código copiables que muestran métodos comunes del controlador C++ para recuperar documentos.
Tip
Para obtener más información sobre cualquiera de los métodos que se muestran en esta página, consulta el enlace 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 muestra o tu propia aplicación. Asegúrate de reemplazar todos los marcadores de posición, como <connection string>, con los valores relevantes para tu 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 driver C++ en una ubicación desde la que tu Proyecto pueda importarlo.
Copie el siguiente código y péguelo en un nuevo archivo
.cppdentro de su proyecto.Copia un ejemplo de código de esta página y pégalo en la sección resaltada del archivo.
1 2 3 4 5 6 7 8 9 10 using bsoncxx::builder::basic::kvp; 11 using bsoncxx::builder::basic::make_document; 12 13 int main() { 14 try { 15 mongocxx::instance instance; 16 17 mongocxx::uri uri("<connection string>"); 18 mongocxx::client client(uri); 19 20 auto database = client["<database name>"]; 21 auto collection = database["<collection name>"]; 22 23 // Start example code here 24 25 // End example code here 26 27 } catch (const mongocxx::exception& e) { 28 std::cout << "An exception occurred: " << e.what() << "\n"; 29 return EXIT_FAILURE; 30 } 31 32 return EXIT_SUCCESS; 33 }
Encontrar uno
El siguiente código muestra cómo recuperar un solo documento de una colección que cumpla con los criterios especificados:
auto result = collection.find_one(make_document(kvp("<field name>", "<value>"))); std::cout << bsoncxx::to_json(*result) << std::endl;
Para aprender más sobre el método find_one(), consulta el encontrar un documento sección en la guía Recuperar datos.
Encontrar varios
El siguiente código muestra cómo recuperar todos los documentos de una colección que cumplan con los criterios especificados:
auto results = collection.find(make_document(kvp("<field name>", "<value>"))); for(auto&& doc : results) { std::cout << bsoncxx::to_json(doc) << std::endl; }
Para aprender más sobre el método find(), consulta la sección Encontrar varios documentos en la guía Recuperar datos.
Contar documentos en una colección
El siguiente código muestra cómo contar el número de documentos en una colección:
auto result = collection.count_documents({}); std::cout << result << std::endl;
Para obtener más información sobre el método count_documents(), consulta la sección Obtener un recuento exacto en la guía Contar documentos.
Contar documentos devueltos de una query
El siguiente código muestra cómo contar los documentos en una colección que cumplen con los criterios especificados:
auto result = collection.count_documents(make_document(kvp("<field name>", "<value>"))); std::cout << result << std::endl;
Para obtener más información sobre el método count_documents(), consulta la sección Obtener un recuento exacto en la guía Contar documentos.
Recuento estimado de documentos
El siguiente código muestra cómo recuperar un recuento estimado del número de documentos en una colección:
auto result = collection.estimated_document_count(); std::cout << result << std::endl;
Para aprender más sobre el método estimated_document_count(), consulta la sección Recuperar un recuento estimado en la guía Recuento de documentos.
Retrieve Distinct Values
El siguiente código muestra cómo recuperar los valores únicos de un campo para documentos que coincidan con los criterios especificados:
auto results = collection.distinct("<field name>", "<filter>"); for(auto&& doc : results) { std::cout << bsoncxx::to_json(doc) << std::endl; }
Para obtener más información sobre el método distinct(), consulta la guía Recuperar Valores Únicos de Campo.
Supervisar los cambios en los datos
El siguiente código muestra cómo supervisar e imprimir cambios en una colección:
auto stream = collection.watch(); while (true) { for (const auto& event : stream) { std::cout << bsoncxx::to_json(event) << std::endl; } }
Para obtener más información sobre el método watch(), consulta la guía Supervisar cambios de datos.