Docs Menu
Docs Home
/ /

Leer datos

En esta página, puede 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, consulte el enlace proporcionado 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 su propia aplicación. Asegúrese de reemplazar todos los marcadores de posición, como <connection string>, con los valores relevantes para su 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 driver C++ en una ubicación desde la que tu Proyecto pueda importarlo.

  2. Copie el siguiente código y péguelo en un nuevo archivo .cpp dentro de su proyecto.

  3. Copie un ejemplo de código de esta página y péguelo dentro de la sección resaltada del archivo.

1#include <iostream>
2
3#include <bsoncxx/builder/basic/document.hpp>
4#include <bsoncxx/json.hpp>
5#include <mongocxx/client.hpp>
6#include <mongocxx/exception/exception.hpp>
7#include <mongocxx/instance.hpp>
8#include <mongocxx/uri.hpp>
9
10using bsoncxx::builder::basic::kvp;
11using bsoncxx::builder::basic::make_document;
12
13int 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}

El siguiente código muestra cómo recuperar un solo documento de una colección que coincide con los criterios especificados:

auto result = collection.find_one(make_document(kvp("<field name>", "<value>")));
std::cout << bsoncxx::to_json(*result) << std::endl;

Para obtener más información sobre el método find_one(), consulte la Sección Buscar un documento en la guía Recuperar datos.

El siguiente código muestra cómo recuperar todos los documentos de una colección que coinciden 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 obtener más información sobre el find() método, consulte la sección Buscar varios documentos en la guía Recuperar datos.

El siguiente código muestra cómo contar la cantidad de documentos en una colección:

auto result = collection.count_documents({});
std::cout << result << std::endl;

Para obtener más información sobre el count_documents() método, consulte la sección Recuperar un recuento preciso en la guía Documentos de recuento.

El siguiente código muestra cómo contar documentos en una colección que coinciden 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 count_documents() método, consulte la sección Recuperar un recuento preciso en la guía Documentos de recuento.

El siguiente código muestra cómo recuperar un recuento estimado de la cantidad de documentos en una colección:

auto result = collection.estimated_document_count();
std::cout << result << std::endl;

Para obtener más información sobre el estimated_document_count() método, consulte la sección Recuperar un recuento estimado en la guía Documentos de recuento.

El siguiente código muestra cómo recuperar los valores únicos de un campo para los documentos que coinciden 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.

El siguiente código muestra cómo monitorear 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 watch() método, consulte la guía Monitorear cambios en los datos.

Volver

Pools de conexiones

En esta página