So stellen Sie mit C ++ eine Verbindung zu MongoDB her

So stellen Sie mit C ++ eine Verbindung zu MongoDB her

Die Arbeit in MongoDB ist so einfach wie in unserem Befehlszeilen-Tool in jedem Betriebssystem zu arbeiten. Wenn Sie eine Programmiersprache wie C ++ über ein Visual Studio -Tool mit einer Datenbank wie MongoDB anschließen, ist dies nicht immer einfach wie für andere Programmiersprachen wie Python und Java. Daher werden wir jeden Schritt in Richtung der Konnektivität von MongoDB unter Verwendung von C ++ in dieser Anleitung erläutern. Bevor Sie sich den C ++ - Code ansehen, um eine Verbindung mit MongoDB herzustellen, müssen Sie die erforderlichen Bibliotheken und Tools im System installieren. Ausgehend von der Aktualisierung des Systems starten wir die Konsolenanwendung und führen die Anweisung „APT“ aus, um das Linux -System zu aktualisieren und zu aktualisieren, an dem wir derzeit arbeiten, an dem Ubuntu 22 ist.04.

saeedraza@virtualBox: ~ $ sudo APT Update && sudo APT -Upgrade

Voraussetzungen installieren

Die Voraussetzungen, die für die Installation von MongoDB benötigt werden, sollten über die Konsole montiert werden. Zu den Voraussetzungen gehören GNUPG, APT-transport-https, CA-Zertifikate und gemeinsame Softwareeigenschaften. Mit dem gleichen Befehl "APT" installieren wir alle gleichzeitig.

saeedraza@virtualBox: ~ $ sudo APT Install DIRMNGR GNUPG APT-transport-http

Das Wichtigste, was Sie vor der Installation von MongoDB tun müssen, ist, unserem System seinen öffentlichen Schlüssel hinzuzufügen. Probieren Sie dazu die folgende Anweisung in der Shell aus und führen Sie sie aus. Der Rückgabewert "OK" zeigt seine erfolgreiche Aufnahme.

saeedraza@virtualBox: ~ $ wget -qo - https: // www.MongoDb.org/static/pgp/server-5.0.ASC | sudo apt-key add -
Warnung: Apt-Key ist veraltet. Verwalten Sie Schlüsselringdateien in vertrauenswürdiger.gpg.D Stattdessen (siehe Apt-Key (8)).
OK

Nachdem wir den Schlüssel hinzugefügt haben.Liste.D ”Ordner. Stellen Sie danach erneut sicher, dass Sie Ihr System noch einmal aktualisieren.

saeedraza@virtualBox: ~ $ echo "Deb [Arch = AMD64, ARM64] https: // repo.MongoDb.org/apt/ubuntu focal/mongoDb-org/5.0 Multiverse "| sudo tee/etc/apt/Quellen.Liste.d/mongoDb-org-5.0.Liste
Deb [Arch = AMD64, ARM64] https: // repo.MongoDb.org/apt/ubuntu focal/mongoDb-org/5.0 Multiversum

MongoDB installieren

Wir installieren das MongoDB-Meta-Package direkt, nachdem alle Voraussetzungen installiert wurden. Es ist also Zeit für seine Installation mit dem Terminal. Der Befehl für seine Installation zeigt die Verwendung des Schlüsselworts „MongoDB-org“ mit dem Dienstprogramm „APT-Get“ von Linux, sodass die Installation möglich ist.

saeedraza@virtualBox: ~ $ sudo apt-Get Install Mongodb-org

Starten Sie den MongoDB -Dienst neu und aktivieren Sie die Anweisung „SystemCTL“ von Linux. Sie werden sehen, dass der MongoDB -Datenbankserver aktiv gemäß der Anweisung „Status“ ausgeführt wird.

saeedraza@virtualBox: ~ $ sudo systemCtl aktivieren Mongod
saeedraza@virtualBox: ~ $ sudo systemctl starten mongod
saeedraza@virtualBox: ~ $ sudo systemctl Status Mongod

Eine andere Möglichkeit, zu überprüfen, ob der MongoDB aktiv ist, und ausführt, besteht darin, das Flag „-eval“ mit dem Schlüsselwort „Mongo“ zu verwenden, gefolgt von der Funktion „Runcommand ()“. Diese Funktion verwendet das ConnectionStatus -Argument als "1". Die Ausgabe „OK: 1“ zeigt, dass der MongoDB aktiv ist und läuft. Wenn der Status „0“ zeigt, bedeutet dies, dass der MongoDB noch nicht aktiv ist.

saeedraza@virtualbox: ~ $ mongo -eeval 'db.RunCommand (ConnectionStatus: 1) '
MongoDB Shell Version V5.0.14
Verbindung mit: MongoDB: // 127.0.0.1: 27017/?compressors = deaktiviert & gssapiserviceName = mongoDB
Implizite Sitzung: Sitzung "ID": UUID ("71BF84E6-8B13-497A-B408-5E9283D0C016")
MongoDB Server -Version: 5.0.14

"Authinfo":
"AuthenticaticedUsers": [],
"AuthenticatedUseserroles": []
,
"OK": 1

Verwenden Sie den MongoDB -Server, um den MongoDB -Server zu starten.

saeedraza@virtualbox: ~ $ mongosh
Aktuelle Mongosh Log ID: 63AC7E4A7D67F35E4F2D95B0
Verbindung mit: MongoDB: // 127.0.0.1: 27017/?DirectConnection = True & ServerSelectionTimeOutms = 2000 & AppName = Mongosh+1.6.1
Mit MongoDB: 5.0.14
Mit Mongosh: 1.6.1

Wenn Sie die Anweisung "DBS anzeigen" in der MongoDB-Shell ausführen, werden die integrierten Datenbanken angezeigt. Im Moment arbeiten wir an der "Test" -Datenbank.

Test> DBS anzeigen
admin 40.00 KIB
Konfiguration 36.00 KIB
Lokal 72.00 KIB

Nehmen wir an, Sie haben eine „Mongo“ -Kollektion in der Datenbank "Test" mit einigen Datensätzen.

Test> Sammlungen anzeigen
Mongo
Test> db.Mongo.finden()
[

_id: ObjectID ("63AB69EA3E19B595A8FB0B90"),
Mitarbeiter: Name: 'Aina', Job: 'Polizei'

]

Abhängigkeiten installieren

Die "libmongoc" -Bibliothek ist ein Muss, um den MongoDB mit C ++ unter Linux zu verbinden. Daher müssen Sie es mit der Installationsanweisung „APT“ innerhalb der Konsolenanwendung installieren.

saeedraza@virtualBox: ~ $ sudo apt-Get Install libMongoc*

Die "libbson" -Bibliothek muss für die Verbindung verwendet werden, damit wir die Datenbank "BSON" -Daten hinzufügen können. Der gleiche Stil der APT-Get-Anweisung wird für die Installation verwendet.

saeedraza@virtualbox: ~ $ sudo apt-Get Install libbson*

Um eine SSL-Verbindung zu erstellen. Die Verwendung des „CMake“ -Pakets ist ein Muss zum Verbinden von C ++ mit MongoDB. Ohne es zu verwenden, wird unser Programm nicht funktionieren.

saeedraza@virtualBox: ~ $ sudo apt-Get Install CMake libsl-dev libasl2-dev

Laden Sie den C ++ - Treiber für MongoDB herunter und installieren Sie es

Nach der Installation der Abhängigkeiten ist es Zeit, den C ++ - Treiber für MongoDB im Linux -System zu installieren. Gehen Sie zur offiziellen Seite des Github für die „Tar“ -Datei des Fahrers und laden Sie sie an Ihrem Ende herunter. Sie können es auch mit dem Tool „Curl“ am Terminal herunterladen. Bewegen Sie sich in dem aktuell verwendeten Ordner über die Anweisung „LS“ von Linux auf, wir listen alle Dateien und Ordner auf. Die hervorgehobene Datei in „rot“ repräsentiert tatsächlich die Tar-Datei „MongoDB-C ++-Treiber“.

saeedraza@virtualBox: ~ $ curl -ol https: // github.com/mongoDB/mongo-cxx-Fahrer/Releases/Download/R3.7.0/mongo-cxx-driver-r3.7.0.Teer.gz
saeedraza@virtualBox: ~ $ ls
A.out downloads Musikpublikumstest Download.CPP
Desktop Mongo-Cxx-Driver-R3.7.0 Neu.TXT -Snap -Videos
Dokumente mongo-cxx-driver-r3.7.0.Teer.GZ Pictures Vorlagen

Wir müssen die CMake -Anweisung ausführen, um die automatische Reinigung zu deaktivieren.

saeedraza@virtualbox: ~ $ cd mongo-cxx-driver-r3.7.0
saeedraza@virtualBox: ~/mongo-cxx-driver-r3.7.0 $ CMAKE -Denable_Automatic -init_and_clearnup = off

Erstellen Sie den Mongocxx-Treiber im selben Verzeichnis mit der Flag „-build“.

saeedraza@virtualBox: ~/mongo-cxx-driver-r3.7.0 $ CMAKE -BUILD .

Führen Sie die folgende Anweisung aus, um den gebauten Treiber zu installieren:

saeedraza@virtualBox: ~/mongo-cxx-driver-r3.7.0 $ CMAKE -BUILD . --Ziel installieren

Beispiel für C ++ - Code

Ausgehend vom C ++ - Code -Beispiel, um die Konnektivität von MongoDB mit C ++ zu erläutern, verwenden wir den Visual Studio -Code in unserem System. Erstellen Sie eine C ++ - Datei, in der Sie den Mongocxx -Treiber erstellen und den Code ausführen müssen. Der Code beginnt mit der Verwendung grundlegender Bibliotheken von „C ++“ zusammen mit der Aufnahme von Mogocxx -Build -Dateien, die nach einem Build im Treiberordner enthalten sind. Alle erforderlichen Dateipfade sind als Header enthalten.

Danach starten wir unsere Funktion main (), um die Konnektivität zu starten. Die MongoDB -Instanz wird hergestellt und wir deklarieren den Client -Adresspfad als „URI“, der für die Verbindung zwischen C ++ und MongoDB benötigt wird. Ein Dokumentstrom wird als "Dokument" gemacht. Die Anweisung „Try-Catch“ wird verwendet, um die zu erledigende wichtige Aufgabe auszuführen, und den Fehler in Verbindung anzuzeigen, wenn es welche vorhanden ist. Die Anweisung für die Try -Anweisung deklariert einen Client mit der Variablen "URI" in der Variablen "con". Die "Test" -Datenbank wird in der Variablen "con" verwendet und die "Mongo" -Kollektion wird aus der "Test" -Datenbank aufgerufen.

Eine Dokumentvariable wird generiert und die "für" -Schloop ist hier, um 2 Variablenwerte "Name" und "Job" aus der "Mongo" -Kollektion mit dem "BSON" -Format zu erhalten. Beide Datensätze werden als Dokument angezeigt. Die Erklärung von Catch () ist hier, um auszuführen, falls die Verbindung nicht hergestellt wurde.

#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
Verwenden Sie bsoncxx :: builder :: stream :: close_array;
Verwenden von BSONCXX :: Builder :: Stream :: Close_document;
Verwenden Sie BSONCXX :: Builder :: Stream :: Dokument;
Verwenden Sie BSONCXX :: Builder :: Stream :: Finalize;
Verwenden Sie BSONCXX :: Builder :: Stream :: Open_Array;
Verwenden Sie 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;
versuchen
mongocxx :: client con (URI);
mongocxx :: Datenbank DB = con ("Test")
mongocxx :: collection col = db ["mongo"];
Dokument << "job" << argv[1];
mongocxx :: cursor cur = col.Finden Sie (doc.Sicht());
für (auto && d: cur)
bsoncxx :: document :: element name = d ["name"];
bsoncxx :: document :: element Job = D ["Job"];
std :: string strname = std :: string (Name.get_utf8 ().Wert);
std :: string strjob = std :: string (Job.get_utf8 ().Wert);
std :: Cout << "Employee: " << Name << " : "<< Job <
catch (const std :: exception & e)
std :: Cout <<"Connection Faild!" << e.what() << std::endl;
return exit_failure;

Rückkehr 0;

Nachdem wir diese C ++ - Code -Datei ausgeführt haben, können wir die Datensätze einer Mongo -Sammlung aus der Testdatenbank abrufen, wie in den folgenden angezeigt:

Angestellter: Ainda: Polizei

Abschluss

Dieser Leitfaden ist ein Bündel der erforderlichen Schritte für den Konnektivitätsprozess von C ++ mit dem MongoDB -Datenbankserver. Ausgehend von der Einführung haben wir den Unterschied in der Konnektivität zwischen C ++ und anderen Sprachen mit MongoDB erklärt. Nachdem wir die Voraussetzungen installiert haben. Am Ende wird das C ++ - Programm im Visual Studio verwendet, nachdem der Mongocxx -Treiber gebaut wurde, um sich mit MongoDB zu verbinden.