Cómo conectarse a MongoDB con C ++

Cómo conectarse a MongoDB con C ++

Trabajar en MongoDB es tan fácil como trabajar en nuestra herramienta de línea de comandos en cualquier sistema operativo. Si bien conectar un lenguaje de programación como C ++ a través de una herramienta de Visual Studio a una base de datos como MongoDB no siempre es simple como lo hacemos para otros lenguajes de programación como Python y Java. Por lo tanto, vamos a explicar cada paso hacia la conectividad de MongoDB usando C ++ en esta guía. Antes de echar un vistazo al código C ++ para conectarse con MongoDB, debe instalar las bibliotecas y herramientas requeridas en el sistema. A partir de la actualización del sistema, iniciamos la aplicación de la consola y ejecutamos la instrucción "apt" para actualizar y actualizar el sistema Linux en el que estamos trabajando actualmente en el que es el Ubuntu 22.04.

saeedraza@virtualbox: ~ $ sudo apt update && sudo apt actualización

Instalar requisitos previos

Los requisitos previos que se requieren para la instalación de MongoDB deben montarse a través de la consola. Los requisitos previos incluyen Gnupg, Apt-Transport-HTTPS, CA Certificados y propiedades de software comunes. Usando el mismo comando "apt", los instalamos todos a la vez.

saeedraza@virtualbox: ~ $ sudo apt install dirmngr gnupg apt-transport-https ca-certificados de software-propiedades comunes

Lo más importante que debe hacer antes de la instalación de MongoDB es agregar su clave pública a nuestro sistema. Para hacerlo, pruebe las siguientes instrucciones en el shell y ejecútela. El valor de retorno "OK" muestra su inclusión exitosa.

saeedraza@virtualbox: ~ $ wget -qo - https: // www.mongodb.org/static/pgp/server-5.0.ASC | sudo apt-key agregar -
ADVERTENCIA: Apt-Key está en desuso. Administrar archivos de Keyring en confianza.gpg.D en su lugar (ver apt-key (8)).
DE ACUERDO

Después de agregar la clave, agregamos el repositorio "Apt" para MongoDB a las "fuentes.lista.carpeta D ". Después de esto, asegúrese de actualizar su sistema una vez más.

saeedraza@virtualbox: ~ $ echo "Deb [arch = amd64, arm64] https: // repos.mongodb.org/apt/ubuntu focal/mongoDB-org/5.0 multiverso "| Sudo Tee/etc/apt/fuentes.lista.D/MongoDB-ORG-5.0.lista
Deb [Arch = AMD64, ARM64] https: // repo.mongodb.org/apt/ubuntu focal/mongoDB-org/5.0 multiverso

Instalar MongoDB

Instalamos el meta-paquete de MongoDB justo después de que se instalen todos los requisitos previos. Entonces, es hora de su instalación utilizando el terminal. El comando para su instalación muestra el uso de la palabra clave "MongoDB-ORG" con la utilidad "apt-get" de Linux, lo que permite instalar.

saeedraza@virtualbox: ~ $ sudo apt-get install mongoDB-org

Reinicie y habilite el servicio MongoDB utilizando la instrucción "SystemCTL" de Linux. Verá que el servidor de base de datos MongoDB se ejecutaría activamente según la instrucción de "estado".

saeedraza@virtualbox: ~ $ sudo systemctl habilita mongod
saeedraza@virtualbox: ~ $ sudo systemctl start mongod
saeedraza@virtualbox: ~ $ sudo systemctl status mongod

Otra forma de verificar si el MongoDB está activo y en ejecución es usar el indicador "-Eval" con la palabra clave "mongo" seguida de la función "runCommand" ". Esta función utiliza el argumento ConnectionStatus como "1". La salida "Ok: 1" muestra que el MongoDB está activo y se ejecuta. Si el estado muestra "0", significa que el MongoDB aún no está activo.

saeedraza@virtualbox: ~ $ mongo --eval 'db.runCommand (ConnectionStatus: 1) '
MongoDB Shell Version V5.0.14
Conectando a: MongoDB: // 127.0.0.1: 27017/?compresores = discapacitado y gssapiserviceName = MongoDB
Sesión implícita: Sesión "ID": UUID ("71BF84E6-8B13-497A-B408-5E9283D0C016")
Versión del servidor MongoDB: 5.0.14

"Authinfo":
"usuarios autenticados" : [ ],
"AutenticaticedusErroles": []
,
"Ok": 1

Para iniciar el servidor MongoDB, use la instrucción Mongosh en el terminal y obtendrá la versión del servidor MongoDB y el shell junto con el shell iniciado.

saeedraza@virtualbox: ~ $ mongosh
ID de registro de Mongosh actual: 63AC7E4A7D67F35E4F2D95B0
Conectando a: MongoDB: // 127.0.0.1: 27017/?DirectConnection = True & ServerSelectionTimeOutms = 2000 & AppName = Mongosh+1.6.1
Usando MongoDB: 5.0.14
Usando Mongosh: 1.6.1

Cuando ejecuta la instrucción "Show DBS" en el shell MongoDB, se muestran las bases de datos incorporadas. En este momento, estamos trabajando en la base de datos "Test".

Prueba> Mostrar dbs
administrador 40.00 kib
config 36.00 kib
Local 72.00 kib

Supongamos que tiene una colección "Mongo" en la base de datos "Prueba" con algunos registros en ella.

Prueba> Mostrar colecciones
Mongo
Prueba> DB.Mongo.encontrar()
[

_id: ObjectId ("63AB69EA3E19B595A8FB0B90"),
Empleado: nombre: 'Aina', Job: 'Police'

]

Instalar dependencias

La biblioteca "libmongoc" es imprescindible para conectar el MongoDB con C ++ en Linux. Por lo tanto, debe instalarlo utilizando la instrucción de instalación "Apt" dentro de la aplicación de la consola.

saeedraza@virtualbox: ~ $ sudo apt-get install libmongoc*

Es necesario que la biblioteca "Libson" se use para la conexión para que podamos agregar los datos "BSON" a la base de datos. Se utiliza el mismo estilo de instrucción apt-get para su instalación.

saeedraza@virtualbox: ~ $ sudo apt-get install libson*

Para crear una conexión "SSL", la biblioteca de paquetes LibsSL-Dev debe instalarse junto con la biblioteca SASL2, "libsasl2-dev". El uso del paquete "Cmake" es imprescindible para conectar C ++ con MongoDB. Sin usarlo, nuestro programa no funcionará.

saeedraza@virtualbox: ~ $ sudo apt-get install cmake libssl-dev libsasl2-devev

Descargue e instale el controlador C ++ para MongoDB

Después de instalar las dependencias, es hora de instalar el controlador C ++ para MongoDB en el sistema Linux. Vaya a la página oficial de GitHub para el archivo "alquitrán" de este conductor y descárguelo al final. También puede descargarlo usando la herramienta "Curl" en la terminal. Mover dentro de la carpeta utilizada actualmente a través de la instrucción "LS" de Linux, enumeramos todos los archivos y carpetas. El archivo resaltado en "rojo" en realidad representa el archivo de alquitrán "MongoDB-C ++-controlador".

saeedraza@virtualbox: ~ $ curl -ol https: // github.com/MongoDB/Mongo-CXX-Driver/Lotess/Descargar/R3.7.0/Mongo-CXX-Driver-R3.7.0.alquitrán.GZ
saeedraza@virtualbox: ~ $ ls
a.Descargas Música Música Prueba pública.CPP
Escritorio Mongo-CXX-Driver-R3.7.0 Nuevo.videos snap txt
Documentos Mongo-CXX-Driver-R3.7.0.alquitrán.plantillas de imágenes de gz

Necesitamos ejecutar la instrucción "cmake" para deshabilitar la limpieza automática.

saeedraza@virtualbox: ~ $ CD Mongo-CXX-Driver-R3.7.0
saeedraza@virtualbox: ~/mongo-cxx-driver-r3.7.0 $ CMake -Denable_Automatic-Init_and_Clarnup = Off

Construya el controlador MongoCxx dentro del mismo directorio utilizando la bandera "-Build".

saeedraza@virtualbox: ~/mongo-cxx-driver-r3.7.0 $ cmake - -construcción .

Para instalar el controlador integrado, ejecute las siguientes instrucciones:

saeedraza@virtualbox: ~/mongo-cxx-driver-r3.7.0 $ cmake - -construcción . --instalación objetivo

Ejemplo de código C ++

A partir del ejemplo del código C ++ para explicar la conectividad de MongoDB con C ++, utilizamos el código Visual Studio en nuestro sistema. Cree un archivo C ++ donde tenga que construir el controlador MongoCxx y ejecutar el código. El código comienza con el uso de bibliotecas básicas de "C ++" junto con la inclusión de archivos de compilación MOGOCXX que se mantienen en la carpeta del controlador después de una compilación. Todas las rutas de archivo requeridas se incluyen como encabezados.

Después de esto, iniciamos nuestra función principal () para iniciar la conectividad. Se realiza la instancia de MongoDB y declaramos la ruta de la dirección del cliente como "URI" que es necesaria para la conexión entre C ++ y MongoDB. Una transmisión de documentos se hace como "doc". La instrucción "Try-Catch" se utiliza para ejecutar la tarea importante que hacer y mostrar el error en conexión si hay alguna. La declaración de prueba declara a un cliente que usa la variable "URI" en la variable "Con". La base de datos "Test" se usa en la variable "Con" y la colección "Mongo" se llama desde la base de datos "Test".

Se genera una variable de documento y el bucle "para" está aquí para obtener 2 valores variables, "nombre" y "trabajo", de la colección "mongo" utilizando el formato "BSON". Ambos registros se muestran como un documento. La declaración Catch () está aquí para ejecutarse en caso de que la conexión no se establezca.

#incluir
#incluir
#incluir
#incluir
#incluir
#incluir
#incluir
#incluir
#incluir
#incluir
Usando bsoncxx :: builder :: stream :: cerrador_array;
Usando bsoncxx :: builder :: stream :: cerrador_document;
usando bsoncxx :: builder :: stream :: document;
usando bsoncxx :: builder :: stream :: finalizar;
usando bsoncxx :: builder :: stream :: open_array;
usando bsoncxx :: builder :: stream :: open_document;
int main (int argc, char* argv)
MongoCxx :: instancia inst ;
MongoCxx :: Uri Uri ("MongoDB: // Localhost: 27017");
bsoncxx :: build :: stream :: document doc;
intentar
MongoCxx :: Client Con (URI);
MongoCxx :: Database DB = Con ("Test")
MongoCxx :: Collection col = db ["Mongo"];
doc << "job" << argv[1];
MongoCxx :: Cursor Cur = col.encontrar (doc.vista());
for (auto && d: cur)
bsoncxx :: document :: elemento nombre = d ["nombre"];
bsoncxx :: document :: element Job = D ["Job"];
std :: string strname = std :: string (nombre.get_utf8 ().valor);
std :: string strJob = std :: string (trabajo.get_utf8 ().valor);
std :: cout << "Employee: " << Name << " : "<< Job <
catch (const std :: excepción & e)
std :: cout <<"Connection Faild!" << e.what() << std::endl;
return exit_failure;

regresar 0;

Después de ejecutar este archivo de código C ++, podemos obtener los registros de una colección de Mongo de la base de datos de prueba como se muestra en lo siguiente:

Empleado: Ainda: Policía

Conclusión

Esta guía es un paquete de pasos necesarios para tomar el proceso de conectividad de C ++ con el servidor de base de datos MongoDB. A partir de la introducción, explicamos la diferencia en la conectividad entre C ++ y otros idiomas con MongoDB. Después de instalar los requisitos previos, discutimos el método para instalar el servidor MongoDB junto con algunas de sus dependencias antes de la instalación del controlador MongoDB C ++. Al final, el programa C ++ se usa en Visual Studio después de construir el controlador MongoCxx para conectarse con MongoDB.