Hvordan koble til MongoDB med C ++

Hvordan koble til MongoDB med C ++

Å jobbe i MongoDB er like enkelt som å jobbe i vårt kommandolinjeverktøy i ethvert operativsystem. Mens du kobler til et programmeringsspråk som C ++ via et visuelt studioverktøy til en database som MongoDB, er ikke alltid enkelt som vi gjør for andre programmeringsspråk som Python og Java. Derfor kommer vi til å forklare hvert trinn mot tilkoblingen til MongoDB ved å bruke C ++ i denne guiden. Før du tar en titt på C ++ -koden for å koble til MongoDB, må du installere de nødvendige bibliotekene og verktøyene i systemet. Med utgangspunkt i å oppdatere systemet, lanserer vi konsollapplikasjonen og utfører den "apt" instruksjonen for å oppdatere og oppgradere Linux -systemet som vi for øyeblikket jobber med Ubuntu 22.04.

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

Installer forutsetninger

Forutsetningene som er nødvendige for installasjon av MongoDB, bør monteres via konsollen. Forutsetningene inkluderer GNUPG, APT-Transport-HTTPS, CA-Certificates og vanlige programvareegenskaper. Ved hjelp av den samme "passende" kommandoen installerer vi dem alle på en gang.

Saeedraza@VirtualBox: ~ $ sudo apt install Dirmngr gnupg apt-transport-https ca-certificates programvare-properties-Common

Det viktigste å gjøre før installasjonen av MongoDB er å legge til den offentlige nøkkelen til systemet vårt. For å gjøre det, prøv følgende instruksjon i skallet og utfør den. Den "OK" returverdien viser den vellykkede inkluderingen.

Saeedraza@VirtualBox: ~ $ wget -qo - https: // www.Mongodb.org/statisk/pgp/server-5.0.ASC | sudo apt-key add -
ADVARSEL: Apt-key er utdatert. Administrer nøkkelringfiler i pålitelige.GPG.d i stedet (se apt-key (8)).
Ok

Etter å ha lagt til nøkkelen, legger vi til det "passende" depotet for MongoDB til "kildene.liste.d ”-mappe. Etter dette, sørg for å oppdatere systemet ditt en gang til.

Saeedraza@VirtualBox: ~ $ Echo "Deb [Arch = AMD64, ARM64] https: // repo.Mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse "| sudo tee/etc/apt/kilder.liste.d/mongodb-org-5.0.liste
Deb [Arch = AMD64, ARM64] https: // repo.Mongodb.org/apt/ubuntu focal/mongodb-org/5.0 Multiverse

Installer mongoDB

Vi installerer MongoDB-metapakken rett etter at alle forutsetningene er installert. Så det er tid for installasjonen ved å bruke terminalen. Kommandoen for den.

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

Start på nytt og aktiver MongoDB -tjenesten ved å bruke "SystemCTL" -instruksjonen til Linux. Du vil se at MongoDB -databaseserveren aktivt kjører i henhold til "Status" -instruksjonen.

Saeedraza@VirtualBox: ~ $ sudo SystemCTL Enable Mongod
Saeedraza@VirtualBox: ~ $ sudo SystemCTL Start Mongod
Saeedraza@VirtualBox: ~ $ sudo SystemCTL Status Mongod

En annen måte å sjekke om MongoDB er aktiv og kjører er å bruke "-eval" -flagget med "Mongo" -tnøkkelordet etterfulgt av "RunCommand ()" -funksjonen. Denne funksjonen bruker ConnectionStatus -argumentet som “1”. "OK: 1" -utgangen viser at mongoDB er aktiv og kjører. Hvis statusen viser “0”, betyr det at MongoDB ennå ikke er aktiv.

Saeedraza@VirtualBox: ~ $ Mongo -Evals 'DB.RunCommand (ConnectionStatus: 1) '
MongoDB Shell -versjon V5.0.14
Koble til: MongoDB: // 127.0.0.1: 27017/?kompressorer = funksjonshemmede & gssapiservicename = mongoDB
Implisitt økt: økt "id": UUID ("71BF84E6-8B13-497A-B408-5E9283D0C016")
MongoDB -serverversjon: 5.0.14

"AuthInfo":
"Autentiserte brukere": [],
"AuthenticatedUerRoles": []
,
"OK": 1

For å starte MongoDB -serveren, bruk Mongosh -instruksjonen på terminalen, og du får versjonen av MongoDB -serveren og Shell sammen med det initierte skallet.

Saeedraza@VirtualBox: ~ $ Mongosh
Gjeldende Mongosh -log ID: 63AC7E4A7D67F35E4F2D95B0
Koble til: MongoDB: // 127.0.0.1: 27017/?DirectConnection = True & ServerSelectionTimeOutms = 2000 & AppName = Mongosh+1.6.1
Bruker MongoDB: 5.0.14
Bruker mongosh: 1.6.1

Når du kjører "Show DBS" -instruksjonen i MongoDB-skallet, vises de innebygde databasene. Akkurat nå jobber vi med "Test" -databasen.

Test> Vis DBS
Admin 40.00 KIB
konfigurasjon 36.00 KIB
Lokal 72.00 KIB

La oss anta at du har en "mongo" -samling i "test" -databasen med noen poster i den.

Test> Vis samlinger
Mongo
Test> DB.Mongo.finne()
[

_ID: ObjectID ("63AB69EA3E19B595A8FB0B90"),
Ansatt: Navn: 'Aina', Job: 'Police'

]

Installer avhengigheter

"Libmongoc" -biblioteket er et must å koble MongoDB med C ++ i Linux. Derfor må du installere den ved hjelp av "APT" installasjonsinstruksjonen i konsollapplikasjonen.

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

Det er behov for at "Libbson" -biblioteket skal brukes til tilkobling, slik at vi kan legge til “BSON” -dataene i databasen. Den samme stilen med apt-get instruksjon brukes til installasjonen.

Saeedraza@VirtualBox: ~ $ sudo apt-get install libbson*

For å opprette en "SSL" -forbindelse, bør Libsl-Dev Package Library installeres sammen med SASL2-biblioteket, "Libsasl2-dev". Bruken av "CMake" -pakken er et must å koble C ++ med MongoDB. Uten å bruke det, vil ikke programmet vårt fungere.

saeedraza@virtualbox: ~ $ sudo apt-get installer cmake libsl-dev libsasl2-dev

Last ned og installer C ++ driveren for MongoDB

Etter å ha installert avhengighetene, er det på tide å installere C ++ driveren for MongoDB i Linux -systemet. Gå til Githubs offisielle side for denne driverens "tjære" -fil og last den ned den på slutten. Du kan også laste det ned ved hjelp av “Curl” -verktøyet på terminalen. Når vi beveger oss innenfor den nå benyttede mappen via "LS" -instruksjonen til Linux, viser vi alle filene og mappene. Den uthevede filen i “Red” representerer faktisk “MongoDB-C ++-Driver” TAR-filen.

Saeedraza@VirtualBox: ~ $ Curl -ol https: // github.com/mongodb/mongo-cxx-driver/utgivelser/nedlasting/r3.7.0/Mongo-CXX-Driver-R3.7.0.tjære.gz
Saeedraza@VirtualBox: ~ $ ls
en.ut laster ned musikk offentlig test.CPP
Desktop Mongo-CXX-Driver-R3.7.0 nytt.txt snap videoer
Dokumenter Mongo-CXX-Driver-R3.7.0.tjære.GZ Pictures maler

Vi må kjøre "CMake" -instruksjonen for å deaktivere automatisk opprydding.

Saeedraza@VirtualBox: ~ $ CD Mongo-CXX-Driver-R3.7.0
Saeedraza@VirtualBox: ~/Mongo-CXX-Driver-R3.7.0 $ cmake -Denable_automatic -init_and_clearnup = off

Bygg Mongocxx-driveren i samme katalog ved hjelp av "-build" -flagget.

Saeedraza@VirtualBox: ~/Mongo-CXX-Driver-R3.7.0 $ cmake --build .

For å installere den bygde driveren, kjør følgende instruksjon:

Saeedraza@VirtualBox: ~/Mongo-CXX-Driver-R3.7.0 $ cmake --build . --målinstallasjon

Eksempel på C ++ kode

Med start fra C ++ -kodeeksemplet for å utdype tilkoblingen til MongoDB med C ++, bruker vi Visual Studio -koden i systemet vårt. Opprett en C ++ -fil der du må bygge Mongocxx -driveren og kjøre koden. Koden starter med bruk av grunnleggende biblioteker av "C ++" sammen med inkludering av Mogocxx -byggefiler som holdes i drivermappen etter en build. Alle de nødvendige filstiene er inkludert som overskrifter.

Etter dette starter vi vår viktigste () -funksjon for å starte tilkoblingen. MongoDB -forekomsten er laget, og vi erklærer klientadresseveien som "URI" som er nødvendig for forbindelsen mellom C ++ og MongoDB. En dokumentstrøm er laget som "Doc". Uttalelsen om "prøve-catch" brukes til å kjøre den viktige oppgaven å gjøre og vise feilen i forbindelse hvis det er noen. Try -setningen erklærer en klient som bruker "URI" -variabelen i "con" -variabelen. "Test" -databasen brukes i "Con" -variabelen og "Mongo" -samlingen kalles fra "Test" -databasen.

En dokumentvariabel genereres og "for" -løkken er her for å få 2 variable verdier, "navn" og "jobb", fra "Mongo" -samlingen ved hjelp av "BSON" -formatet. Begge postene vises som et dokument. Fangst () uttalelsen er her for å kjøre i tilfelle forbindelsen ikke ble etablert.

#inkludere
#inkludere
#inkludere
#inkludere
#inkludere
#inkludere
#inkludere
#inkludere
#inkludere
#inkludere
Bruker BSONCXX :: Builder :: Stream :: Close_Array;
Bruker BSONCXX :: Builder :: Stream :: Close_Document;
Bruker BSONCXX :: Builder :: Stream :: Dokument;
Bruker BSONCXX :: Builder :: Stream :: Finale;
Bruker BSONCXX :: Builder :: Stream :: Open_Array;
Bruker BSONCXX :: Builder :: Stream :: Open_Document;
int main (int argc, char* argv)
mongocxx :: forekomst Inst ;
mongocxx :: uri uri ("mongodb: // localhost: 27017");
bsoncxx :: build :: stream :: dokument doc;
prøv
Mongocxx :: Client Con (URI);
mongocxx :: database db = con ("test")
mongocxx :: samling col = db ["mongo"];
Doc << "job" << argv[1];
mongocxx :: markør cur = col.Finn (dok.utsikt());
for (auto && d: cur)
bsoncxx :: dokument :: elementnavn = d ["name"];
bsoncxx :: dokument :: elementjobb = d ["jobb"];
Std :: String StrName = Std :: String (navn.get_utf8 ().verdi);
std :: streng strjob = std :: streng (jobb.get_utf8 ().verdi);
std :: cout << "Employee: " << Name << " : "<< Job <
fangst (const std :: unntak & e)
std :: cout <<"Connection Faild!" << e.what() << std::endl;
return exit_failure;

retur 0;

Etter å ha kjørt denne C ++ -kodefilen, kan vi hente postene til en Mongo -samling fra testdatabasen som vist i følgende:

Ansatt: Ainda: Politi

Konklusjon

Denne guiden er et knippe nødvendige skritt å ta for tilkoblingsprosessen til C ++ med MongoDB -databaseserveren. Med utgangspunkt i introduksjonen forklarte vi forskjellen i tilkobling mellom C ++ og andre språk med MongoDB. Etter å ha installert forutsetningene, diskuterte vi metoden for å installere MongoDB -serveren sammen med noen av dens avhengigheter før installasjonen av MongoDB C ++ driveren. Til slutt brukes C ++ -programmet i Visual Studio etter å ha bygget Mongocxx -driveren for å få kontakt med MongoDB.