Overview
El driver de MongoDB C++ es un paquete de C++ que se puede usar para conectarse a MongoDB y para la interacción con los datos almacenados en la implementación. Esta guía muestra cómo crear una aplicación que use el driver C++ para conectarse a un clúster de MongoDB alojado en MongoDB Atlas y hacer un query de datos en el clúster.
Tip
MongoDB Atlas es un servicio de base de datos gestionada en la nube que aloja las implementaciones de MongoDB. Se puede crear una implementación propia gratuita de MongoDB Atlas (sin necesidad de tarjeta de crédito) siguiendo los pasos de esta guía.
Siga esta guía para conectar una aplicación C++ de ejemplo a una implementación de MongoDB Atlas. Si prefiere conectarse a MongoDB con un controlador o lenguaje de programación diferente, consulte nuestra Lista de conductores oficiales.
Descargue e instale
Instala todas las dependencias.
Antes de comenzar este tutorial, asegúrate de tener las siguientes dependencias instaladas en tu entorno de desarrollo:
Compilador que admite C++17, como GCC, Clang o Visual Studio
CMake v3.15 o posterior
Nota
Configuraciones anteriores a C++17
Aunque C++11 es la versión mínima de lenguaje compatible, este tutorial configura el controlador de C++ para usar la biblioteca estándar de C++17 según lo recomendado por Elija17 una sección Polyfill de C++. Si desea instalar el controlador para17 configuraciones anteriores a C++, configure CMAKE_CXX_STANDARD
Opción de configuración para su versión de C++. Luego, el controlador usará automáticamente las implementaciones polyfill de la biblioteca bsoncxx para las características requeridas de C++17.
Descarga el driver de C++.
Para descargar la última versión del controlador C++ desde el repositorio mongo-cxx-driver de Github, ejecuta los siguientes comandos en tu shell desde el directorio raíz:
curl -OL https://github.com/mongodb/mongo-cxx-driver/releases/download/r3.11.1/mongo-cxx-driver-r3.11.1.tar.gz tar -xzf mongo-cxx-driver-r3.11.1.tar.gz cd mongo-cxx-driver-r3.11.1/build
Configura el driver para la instalación.
Selecciona la pestaña correspondiente a tu sistema operativo y ejecuta el siguiente comando desde tu directorio mongo-cxx-driver-r3.11.1/build:
cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=17
Este comando le indica a CMake que instale mongocxx en el directorio /usr/local.
'C:\<path>\cmake.exe' .. \ -G "Visual Studio <version> <year>" -A "x64" \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_INSTALL_PREFIX=C:\mongo-cxx-driver \
Este comando le dice a CMake que instale mongocxx en el directorio C:\mongo-cxx-driver. Se pueden reemplazar los siguientes valores de marcador de posición:
<path>: La ruta a tu ejecutable de CMake<version>: Tu número de versión de Visual Studio<year>: El año correspondiente a la versión de Visual Studio.
Compila e instala el controlador.
Selecciona la pestaña correspondiente a tu sistema operativo y ejecuta los siguientes comandos para instalar el controlador:
cmake --build . sudo cmake --build . --target install
cmake --build . --config Release cmake --build . --config Debug cmake --install . --config Release cmake --install . --config Debug
Nota
Configuraciones de compilación de Windows
Para evitar errores del vinculador de Windows debido a conflictos de configuraciones, los comandos anteriores compilan e instalan tanto la configuración Release como la Debug. Para aprender más sobre estas configuraciones, consulta Librerías compartidas (solo MSVC) en la guía de control de versiones de API y ABI.
Después de completar estos pasos, se tiene el controlador de C++ instalado en la máquina.
Cree una implementación de MongoDB
Se puede crear una implementación de nivel gratuito de MongoDB en MongoDB Atlas para almacenar y gestionar los datos. MongoDB Atlas aloja y gestiona la base de datos MongoDB en la nube.
Crea una implementación gratuita de MongoDB en Atlas.
Completa la Guía de inicio de MongoDB para configurar una nueva cuenta de Atlas y cargar datos de muestra en una nueva implementación de MongoDB de nivel gratuito.
Después de completar estos pasos, habrá una nueva implementación de nivel gratuito de MongoDB en Atlas, credenciales de usuario de base de datos y datos de muestra cargados en la base de datos.
Crear una cadena de conexión
Puede conectarse a su implementación de MongoDB proporcionando un URI de conexión, también llamado cadena de conexión, que instruye al controlador sobre cómo conectarse a una implementación de MongoDB y cómo comportarse mientras está conectado.
La cadena de conexión incluye el nombre de host o la dirección IP y el puerto de la implementación, el mecanismo de autenticación, las credenciales de usuario cuando sea aplicable, y las opciones de conexión.
Para conectarse con una instancia o implementación que no esté alojada en Atlas, se puede consultar la guía Elegir un destino de conexión.
Encuentra tu cadena de conexión de MongoDB Atlas.
Para recuperar su cadena de conexión para la implementación que creó en el paso anterior, inicie sesión en su cuenta de Atlas y navegue hasta la Clusters Página en la sección Database. Haga clic en el botón Connect para su nueva implementación.

Si aún no tienes un usuario de base de datos configurado, MongoDB te pedirá que crees y configures un nuevo usuario.
Haz clic en el botón Drivers en la sección Connect to your application y selecciona “C++” del menú de selección Driver y la versión que mejor coincida con la versión que instalaste del menú de selección Version.
Asegúrate de que la opción View full code sample esté desmarcada para ver solo la cadena de conexión.
Actualiza el marcador de posición de la contraseña.
Pega esta cadena de conexión en un archivo en tu editor de texto preferido y reemplaza el marcador de posición <db_password> con la contraseña de tu usuario de base de datos. La cadena de conexión ya está completada con el nombre de usuario de tu usuario de base de datos.
Guarda este archivo en una ubicación segura para usarlo en el siguiente paso.
Tras completar estos pasos, hay una cadena de conexión que corresponde al clúster de Atlas.
Ejecuta una query de muestra
Crea un directorio de proyecto.
Desde su directorio raíz, ejecute el siguiente comando en su shell para crear un directorio llamado cpp-quickstart para este proyecto:
mkdir cpp-quickstart
Ejecuta los siguientes comandos para crear un archivo de aplicación quickstart.cpp en el directorio cpp-quickstart:
cd cpp-quickstart touch quickstart.cpp
Crea tu aplicación de controlador en C++.
Copie y pegue el siguiente código en el archivo quickstart.cpp, que hace un query en la colección movies en la base de datos sample_mflix:
#include <cstdint> #include <iostream> #include <vector> #include <bsoncxx/builder/basic/document.hpp> #include <bsoncxx/json.hpp> #include <mongocxx/client.hpp> #include <mongocxx/instance.hpp> #include <mongocxx/uri.hpp> using bsoncxx::builder::basic::kvp; using bsoncxx::builder::basic::make_document; int main() { mongocxx::instance instance; mongocxx::uri uri("<connection string>"); mongocxx::client client(uri); auto db = client["sample_mflix"]; auto collection = db["movies"]; auto result = collection.find_one(make_document(kvp("title", "The Shawshank Redemption"))); std::cout << bsoncxx::to_json(*result) << std::endl; }
Asigna la cadena de conexión.
Reemplaza el marcador de posición <connection string> con la cadena de conexión que se copió del paso Crear una cadena de conexión de esta guía.
Ejecuta tu aplicación C++.
En tu shell, ejecuta los siguientes comandos para compilar y ejecutar esta aplicación:
c++ --std=c++17 quickstart.cpp $(pkg-config --cflags --libs libmongocxx) -o ./app.out ./app.out
Tip
Los usuarios de MacOS pueden ver el siguiente error después de ejecutar los comandos anteriores:
dyld[54430]: Library not loaded: @rpath/libmongocxx._noabi.dylib
Para resolver este error, utilice la opción del vinculador -Wl,-rpath para establecer @rpath, como se muestra en el siguiente código:
c++ --std=c++17 quickstart.cpp -Wl,-rpath,/usr/local/lib/ $(pkg-config --cflags --libs libmongocxx) -o ./app.out ./app.out
La salida de la línea de comandos contiene detalles sobre el documento de película recuperado:
{ "_id" : { "$oid" : "573a1399f29313caabceeb20" }, "plot" : "Two imprisoned men bond over a number of years, finding solace and eventual redemption through acts of common decency.", ... "title" : "The Shawshank Redemption", ...
Si encuentras un error o no ves ninguna salida, asegúrate de haber especificado la cadena de conexión correcta en el archivo quickstart.cpp y de haber cargado los datos de muestra.
Después de completar estos pasos, habrá una aplicación en funcionamiento que utiliza el driver para conectarse a la implementación de MongoDB, ejecuta una query sobre los datos de muestra e imprime el resultado.
Próximos pasos
¡Felicidades por completar el tutorial de inicio rápido!
Nota
En caso de encontrar problemas en este tutorial, se puede pedir ayuda en la página de Stack Overflow o en la comunidad de Reddit de MongoDB, o se puede enviar una opinión mediante la pestaña Rate this page a la derecha o en la parte inferior derecha de esta página.
En este tutorial, se creó una aplicación C++ que se conecta a una implementación de MongoDB alojada en MongoDB Atlas y recupera un documento que coincide con un query.
Más información sobre el controlador C++ en los siguientes recursos:
Se puede obtener información sobre cómo realizar operaciones de lectura en la sección Leer Datos.
Aprende a realizar operaciones de escritura en la sección Guardar datos en MongoDB.
