Docs Menu
Docs Home
/ /

Comienza con el driver de C++

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.

Follow this guide to connect a sample C++ application to a MongoDB Atlas deployment. If you prefer to connect to MongoDB using a different driver or programming language, see our Lista de conductores oficiales.

1

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

  • pkg-config

Nota

Configuraciones anteriores a C++17

Although C++11 is the minimum supported language version, this tutorial configures the C++ driver to use the C++17 standard library as recommended by the C++17 Polyfill Configuration section. If you want to install the driver for pre-C++17 configurations, set the CMAKE_CXX_STANDARD configuration option to your C++ version. Then, the driver will automatically use bsoncxx library polyfill implementations for required C++17 features.

2

To download the latest version of the C++ driver from the mongo-cxx-driver Github repository, run the following commands in your shell from your working directory:

curl -OL https://github.com/mongodb/mongo-cxx-driver/releases/download/r4.1.4/mongo-cxx-driver-r4.1.4.tar.gz
tar -xzf mongo-cxx-driver-r4.1.4.tar.gz
cd mongo-cxx-driver-r4.1.4/build
3

Selecciona la pestaña correspondiente a tu sistema operativo y ejecuta el siguiente comando desde tu directorio mongo-cxx-driver-r4.1.4/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.

4

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.

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.

1

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.

2

Después de crear un usuario de base de datos, guardar el nombre de usuario y la contraseña de ese usuario en una ubicación segura para usarlos en un paso próximo.

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.

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.

1

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.

El botón de conexión en la sección de clústeres de la interfaz de usuario de Atlas

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.

2

Haz clic en el botón a la derecha de la cadena de conexión para copiarla en el portapapeles, como se muestra en la siguiente captura de pantalla:

El botón de copia junto a la cadena de conexión en la interfaz de usuario de Atlas
3

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.

1

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
2

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")));
if (result) {
std::cout << bsoncxx::to_json(*result) << std::endl;
} else {
std::cout << "No result found" << std::endl;
}
}
3

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.

4

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 si tu aplicación imprime "No result found", asegúrate de haber especificado la cadena de conexión adecuada 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.

¡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:

Volver

Overview