Come connettersi a MongoDB con C ++

Come connettersi a MongoDB con C ++

Lavorare in MongoDB è facile come lavorare nel nostro strumento di comando in qualsiasi sistema operativo. Mentre si collega un linguaggio di programmazione come C ++ tramite uno strumento Visual Studio a un database come MongoDB non è sempre semplice come facciamo per altri linguaggi di programmazione come Python e Java. Pertanto, spiegheremo ogni passo verso la connettività di MongoDB usando C ++ in questa guida. Prima di dare un'occhiata al codice C ++ per connettersi con MongoDB, è necessario installare le librerie e gli strumenti richiesti nel sistema. A partire dall'aggiornamento del sistema, avviamo l'applicazione della console ed eseguiamo l'istruzione "APT" per aggiornare e aggiornare il sistema Linux su cui stiamo attualmente lavorando, che è Ubuntu 22.04.

saeedraza@virtualbox: ~ $ sudo apt update && sudo apt upgrade

Installa i prerequisiti

I prerequisiti necessari per l'installazione di MongoDB devono essere montati tramite la console. I prerequisiti includono GNUPG, APT-Transport-Https, CA-certificati e proprietà software comuni. Usando lo stesso comando "Apt", li installiamo tutti contemporaneamente.

saeedraza@virtualbox: ~ $ sudo apt Installa dirmngr gnupg apt-transport-https CA-certificates software-Properties-Common

La cosa più importante da fare prima dell'installazione di MongoDB è aggiungere la sua chiave pubblica al nostro sistema. Per fare ciò, prova le seguenti istruzioni nella shell ed eseguila. Il valore di ritorno "OK" mostra la sua inclusione riuscita.

saeedraza@virtualbox: ~ $ wget -qo - https: // www.MongodB.org/statico/pgp/server-5.0.ASC | sudo Apt-Key Aggiungi -
ATTENZIONE: APT-Key è deprecato. Gestisci i file del keyring in fiducia.gpg.D invece (vedi Apt-Key (8)).
OK

Dopo aver aggiunto la chiave, aggiungiamo il repository "Apt" per MongoDB alle "fonti.elenco.cartella d ”. Dopo questo, assicurati di aggiornare ancora una volta il sistema.

saeedraza@virtualbox: ~ $ echo "deb [arch = amd64, arm64] https: // repo.MongodB.Org/Apt/Ubuntu Focal/MongoDB-ORG/5.0 Multiverse "| sudo tee/etc/apt/fonti.elenco.D/MongoDB-ORG-5.0.elenco
Deb [Arch = AMD64, ARM64] https: // Repo.MongodB.Org/Apt/Ubuntu Focal/MongoDB-ORG/5.0 Multiverso

Installa MongoDB

Installiamo il meta-package MongoDB subito dopo l'installazione di tutti i prerequisiti. Quindi, è tempo per la sua installazione utilizzando il terminale. Il comando per la sua installazione mostra l'uso della parola chiave "MongoDB-ORG" con l'utilità "Apt-get" di Linux, rendendo possibile l'installazione.

saeedraza@virtualbox: ~ $ sudo apt-get Installa MongoDB-ORG

Riavvia e abilita il servizio MongoDB utilizzando l'istruzione "SystemCtl" di Linux. Vedrai che il server di database MongoDB sarebbe attivamente in esecuzione secondo l'istruzione "status".

saeedraza@virtualbox: ~ $ sudo systemctl abilita mongod
saeedraza@virtualbox: ~ $ sudo systemctl start mongod
saeedraza@virtualbox: ~ $ sudo systemctl status Mongod

Un altro modo per verificare se MongoDB è attivo ed in esecuzione è utilizzare il flag "-val" con la parola chiave "Mongo" seguita dalla funzione "RunCommand ()". Questa funzione utilizza l'argomento ConnectionStatus come "1". L'output "OK: 1" mostra che MongoDB è attivo ed in esecuzione. Se lo stato mostra "0", significa che il MongoDB non è ancora attivo.

saeedraza@virtualbox: ~ $ mongo --val 'db.RunCommand (ConnectionStatus: 1) '
Mongodb Shell Version V5.0.14
Connessione a: MongoDB: // 127.0.0.1: 27017/?compressori = disabili e gssapiservicename = MongoDB
Sessione implicita: sessione "id": uuid ("71bf84e6-8b13-497a-b408-5e9283d0c016")
Versione del server MongoDB: 5.0.14

"Authinfo":
"utenti autenticati" : [ ],
"AuthentedUSerRoles": []
,
"ok": 1

Per avviare il server MongoDB, utilizzare le istruzioni Mongosh sul terminale e si ottiene la versione del server MongoDB e della shell insieme alla shell avviata.

saeedraza@virtualbox: ~ $ Mongosh
ID registro Mongosh corrente: 63AC7E4A7D67F35E4F2D95B0
Connessione 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

Quando si esegue l'istruzione "Show DBS" nella shell MongoDB, vengono visualizzati i database integrati. In questo momento, stiamo lavorando al database "test".

Test> Mostra dbs
amministratore 40.00 kib
config 36.00 kib
locale 72.00 kib

Supponiamo che tu abbia una raccolta "Mongo" nel database "Test" con alcuni record.

Test> Mostra collezioni
Mongo
Test> db.Mongo.Trovare()
[

_id: objectId ("63ab69ea3e19b595a8fb0b90"),
Employee: Nome: 'Aina', Giobbe: 'Police'

"

Installa dipendenze

La libreria "libmongoc" è un must per collegare il mongodb con C ++ in Linux. Pertanto, è necessario installarlo utilizzando l'istruzione di installazione "APT" all'interno dell'applicazione della console.

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

È necessario utilizzare la libreria "Libbson" per la connessione in modo da poter aggiungere i dati "BSON" nel database. Lo stesso stile di istruzione APT-get viene utilizzato per la sua installazione.

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

Per creare una connessione "SSL", la libreria dei pacchetti LIBSSL-Dev dovrebbe essere installata insieme alla libreria SASL2, "Libsasl2-dev". L'uso del pacchetto "cmake" è un must per collegare C ++ con MongoDB. Senza usarlo, il nostro programma non funzionerà.

saeedraza@virtualbox: ~ $ sudo apt-get Installa Cmake LiBSSL-Dev Libsl2-dev

Scarica e installa il driver C ++ per MongoDB

Dopo aver installato le dipendenze, è tempo di installare il driver C ++ per MongoDB nel sistema Linux. Vai alla pagina ufficiale di GitHub per il file "Tar" di questo driver e scaricalo alla fine. Puoi anche scaricarlo utilizzando lo strumento "Curl" al terminale. Spostandosi nella cartella attualmente utilizzata tramite l'istruzione "LS" di Linux, elenchiamo tutti i file e le cartelle. Il file evidenziato in "rosso" rappresenta effettivamente il file TAR "MongoDB-C ++".

saeedraza@virtualbox: ~ $ curl -ol https: // github.com/mongodb/mongo-cxx-driver/versioni/download/r3.7.0/Mongo-CXX-Driver-R3.7.0.catrame.Gz
saeedraza@virtualbox: ~ $ ls
UN.Download Music Public Test.CPP
Desktop Mongo-CXX-Driver-R3.7.0 Nuovo.Video snap txt
Documenti Mongo-CXX-Driver-R3.7.0.catrame.Modelli di immagini GZ

Dobbiamo eseguire l'istruzione "cmake" per disabilitare la pulizia automatica.

saeedraza@virtualbox: ~ $ CD Mongo-CXX-Driver-R3.7.0
saeedraza@virtualbox: ~/mongo-cxx-driver-r3.7.0 $ cmake -denable_automatic -init_and_clearnup = off

Costruisci il driver Mongocxx all'interno della stessa directory utilizzando il flag "-build".

saeedraza@virtualbox: ~/mongo-cxx-driver-r3.7.0 $ cmake -Build .

Per installare il driver costruito, eseguire le seguenti istruzioni:

saeedraza@virtualbox: ~/mongo-cxx-driver-r3.7.0 $ cmake -Build . --Installazione target

Esempio di codice C ++

A partire dall'esempio del codice C ++ per elaborare la connettività di MongoDB con C ++, utilizziamo il codice Visual Studio nel nostro sistema. Crea un file C ++ in cui è necessario creare il driver Mongocxx ed eseguire il codice. Il codice inizia con l'uso di librerie di base di "C ++" insieme all'inclusione di file di build Mogocxx che sono tenuti nella cartella del driver dopo una build. Tutti i percorsi dei file richiesti sono inclusi come intestazioni.

Dopo questo, iniziamo la nostra funzione principale () per avviare la connettività. Viene fatta l'istanza MongoDB e dichiariamo il percorso dell'indirizzo del client come "URI" che è necessario per la connessione tra C ++ e MongoDB. Un flusso di documenti è realizzato come "doc". L'istruzione "Try-Catch" viene utilizzata per eseguire l'importante attività da eseguire e visualizzare l'errore in connessione in caso di. L'istruzione Try dichiara un client utilizzando la variabile "URI" nella variabile "Con". Il database "Test" viene utilizzato nella variabile "Con" e la raccolta "Mongo" viene chiamata dal database "Test".

Viene generata una variabile di documento e il loop "per" è qui per ottenere 2 valori variabili, "nome" e "lavoro", dalla raccolta "Mongo" utilizzando il formato "BSON". Entrambi i record sono visualizzati come documento. L'istruzione Catch () è qui per essere eseguita nel caso in cui la connessione non sia stata stabilita.

#includere
#includere
#includere
#includere
#includere
#includere
#includere
#includere
#includere
#includere
Utilizzo di bsoncxx :: builder :: stream :: close_array;
Utilizzo di bsoncxx :: builder :: stream :: close_document;
usando bsoncxx :: builder :: stream :: document;
usando bsoncxx :: builder :: stream :: finalize;
usando bsoncxx :: builder :: stream :: open_array;
usando bsoncxx :: builder :: stream :: open_document;
int main (int argc, char* argv)
Mongocxx :: Instance Inst ;
Mongocxx :: Uri Uri ("MongoDB: // localhost: 27017");
bsoncxx :: build :: stream :: document doc;
Tentativo
Mongocxx :: Client Con (URI);
Mongocxx :: Database db = con ("test")
Mongocxx :: Collection col = db ["Mongo"];
doc << "job" << argv[1];
MONGOCXX :: CURSOR CUR = COL.Trova (doc.visualizzazione());
for (auto && d: cur)
bsoncxx :: document :: elemento nome = d ["nome"];
bsoncxx :: document :: elemento lavoro = d ["lavoro"];
std :: string strname = std :: string (nome.get_utf8 ().valore);
std :: string strjob = std :: string (lavoro.get_utf8 ().valore);
std :: cout << "Employee: " << Name << " : "<< Job <
catch (const std :: Exception & e)
std :: cout <<"Connection Faild!" << e.what() << std::endl;
restituire exit_failure;

restituzione 0;

Dopo aver eseguito questo file di codice C ++, possiamo recuperare i record di una raccolta Mongo dal database di test visualizzato nel seguente:

Dipendente: Ainda: polizia

Conclusione

Questa guida è un pacchetto dei passaggi necessari da adottare per il processo di connettività di C ++ con il server di database MongoDB. A partire dall'introduzione, abbiamo spiegato la differenza nella connettività tra C ++ e altre lingue con MongoDB. Dopo aver installato i prerequisiti, abbiamo discusso del metodo per installare il server MongoDB insieme ad alcune delle sue dipendenze prima dell'installazione del driver MongoDB C ++. Alla fine, il programma C ++ viene utilizzato in Visual Studio dopo aver costruito il driver Mongocxx per connettersi con MongoDB.