Jak połączyć się z MongoDB z C ++

Jak połączyć się z MongoDB z C ++

Praca w MongoDB jest tak łatwa, jak praca w naszym narzędziu wiersza poleceń w dowolnym systemie operacyjnym. Podłączanie języka programowania, takiego jak C ++ za pomocą narzędzia Visual Studio do bazy danych, takiej jak MongoDB. Dlatego w tym przewodniku wyjaśnimy każdy krok w kierunku łączności MongoDB za pomocą C ++. Przed spojrzeniem na kod C ++ do połączenia z MongoDB, musisz zainstalować wymagane biblioteki i narzędzia w systemie. Począwszy od aktualizacji systemu, uruchamiamy aplikację konsoli i wykonujemy instrukcję „apt” w celu aktualizacji i aktualizacji systemu Linux, nad którym obecnie pracujemy.04.

saeedraza@virtualbox: ~ $ sudo apt aktualizacja && sudo apt aktualizację

Zainstaluj warunki wstępne

Wymagania wstępne wymagane do instalacji MongoDB powinny być zamontowane przez konsolę. Wymagania wstępne obejmują GNUPG, Apt-Transport-HTTPS, certyfikaty CA i wspólne właściwości oprogramowania. Korzystając z tego samego polecenia „apt”, instalujemy je od razu.

saeedraza@virtualbox: ~ $ sudo apt instaluj dirmngr gnupg appt-transport-https ca-certyfikaty oprogramowanie Properties-common

Najważniejszą rzeczą do zrobienia przed instalacją MongoDB jest dodanie swojego klucza publicznego do naszego systemu. Aby to zrobić, wypróbuj następującą instrukcję w powłoce i wykonaj ją. Wartość zwracana „OK” pokazuje jej udane włączenie.

saeedraza@virtualbox: ~ $ wget -qo - https: // www.MongoDB.ORG/STATIC/PGP/SERVER-5.0.ASC | sudo apt-key add -
OSTRZEŻENIE: Apt-key jest przestarzały. Zarządzaj plikami lądowymi w zaufanym.GPG.D zamiast tego (patrz apt-key (8)).
OK

Po dodaniu klucza dodajemy repozytorium „apt” dla MongoDB do „źródeł.lista.D ”folder. Następnie upewnij się, że ponownie zaktualizuj swój system.

saeedraza@virtualbox: ~ $ echo "deb [arch = AMD64, ARM64] https: // repo.MongoDB.org/apt/ubuntu focal/MongoDB-org/5.0 Multiverse "| sudo tee/etc/apt/Źródła.lista.D/MongoDB-org-5.0.lista
Deb [arch = AMD64, arm64] https: // repo.MongoDB.org/apt/ubuntu focal/MongoDB-org/5.0 Multiverse

Zainstaluj MongoDB

Instalujemy meta-pak MongoDB zaraz po zainstalowaniu wszystkich warunków wstępnych. Czas więc na instalację za pomocą terminalu. Polecenie instalacji pokazuje użycie słowa kluczowego „MongoDB-org” z narzędziem „Apt-Get” Linux, co umożliwia zainstalowanie.

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

Uruchom ponownie i włącz usługę MongoDB za pomocą instrukcji „SystemCtl” Linux. Zobaczysz, że serwer bazy danych MongoDB byłby aktywnie uruchomiony zgodnie z instrukcją „status”.

saeedraza@virtualbox: ~ $ sudo systemCtl Włącz Mongood
saeedraza@virtualbox: ~ $ sudo systemctl start mongood
saeedraza@virtualbox: ~ $ sudo systemctl status Mongood

Innym sposobem sprawdzenia, czy MongoDB jest aktywny i działa, jest użycie flagi „-eval” z słowem kluczowym „Mongo”, a następnie funkcji „RunCommand ()”. Ta funkcja wykorzystuje argument ConnectionStatus jako „1”. Wyjście „OK: 1” pokazuje, że MongoDB jest aktywny i działa. Jeśli status pokazuje „0”, oznacza to, że MongoDB nie jest jeszcze aktywny.

saeedraza@virtualbox: ~ $ mongo --val 'db.runCommand (ConnectionStatus: 1) '
MongoDB Shell Wersja V5.0.14
Łączenie się z: MongoDB: // 127.0.0.1: 27017/?sprężarki = wyłączone i gssapiserviceName = MongoDB
Sesja niejawna: sesja "id": uuid ("71bf84e6-8b13-497a-b408-5e9283d0c016")
Wersja serwera MongoDB: 5.0.14

„Authinfo”:
„Uwierzytelnicze”: [],
„AuthentitedSeSerreles”: []
,
„OK”: 1

Aby uruchomić serwer MongoDB, użyj instrukcji Mongosh na terminalu, a otrzymasz wersję serwera MongoDB i powłoki wraz z zainicjowaną powłoką.

saeedraza@virtualbox: ~ $ mongosh
Obecny identyfikator dziennika Mongosh: 63AC7E4A7D67F35E4F2D95B0
Łączenie się z: MongoDB: // 127.0.0.1: 27017/?DirectConnection = True & ServerselectionTimeoutms = 2000 & AppName = Mongosh+1.6.1
Korzystanie z MongoDB: 5.0.14
Za pomocą Mongosh: 1.6.1

Po uruchomieniu instrukcji „pokaż DBS” w powładzie MongoDB, wyświetlane są wbudowane bazy danych. W tej chwili pracujemy nad bazą danych „testowych”.

Test> Pokaż DBS
admin 40.00 kib
Config 36.00 kib
Lokalny 72.00 kib

Załóżmy, że masz kolekcję „Mongo” w bazie danych „Test” z pewnymi rekordami.

Test> Pokaż kolekcje
Mongo
Test> db.Mongo.znajdować()
[[[

_id: ObjectID („63AB69EA3E19B595A8FB0B90”),
Pracownik: Nazwa: „Aina”, Job: „Policja”

]

Zainstaluj zależności

Biblioteka „Libmongoc” jest niezbędna do podłączenia MongoDB z C ++ w Linux. Dlatego musisz go zainstalować za pomocą instrukcji instalacji „Apt” w aplikacji konsoli.

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

Potrzebne jest użycie biblioteki „Libbson” do połączenia, abyśmy mogli dodać dane „BSON” do bazy danych. Ten sam styl instrukcji apt-get jest używany do instalacji.

saeedraza@virtualbox: ~ $ sudo apt-get instaluj libbson*

Aby utworzyć połączenie „SSL”, należy zainstalować bibliotekę pakietów Libssl-dev wraz z biblioteką SASL2, „LibsAsl2-dev”. Zastosowanie pakietu „CMake” jest koniecznością do podłączenia C ++ z MongoDB. Bez korzystania z niego nasz program nie będzie działał.

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

Pobierz i zainstaluj sterownik C ++ dla MongoDB

Po zainstalowaniu zależności nadszedł czas na zainstalowanie sterownika C ++ dla MongoDB w systemie Linux. Przejdź do oficjalnej strony Github dla pliku „TAR” tego sterownika i pobierz go na końcu. Możesz także pobrać go za pomocą narzędzia „Curl” na terminalu. Poruszając się w obecnie używanym folderze za pomocą instrukcji „LS” Linux, wymieniamy wszystkie pliki i foldery. Podświetlony plik w „Red” faktycznie reprezentuje plik smoły „MongoDB-C ++-Driver”.

saeedraza@virtualbox: ~ $ curl -ol https: // github.com/MongoDB/Mongo-Cxx-Driver/Wypuszczania/Pobierz/R3.7.0/Mongo-CXX-Driver-R3.7.0.smoła.GZ
saeedraza@virtualbox: ~ $ ls
A.Pobieranie testu publicznego muzyki.CPP
Desktop Mongo-Cxx-Driver-R3.7.0 NOWOŚĆ.TXT Snap Filmy
Dokumenty Mongo-CXX-Driver-R3.7.0.smoła.Szablony zdjęć GZ

Musimy uruchomić instrukcję „cmake”, aby wyłączyć automatyczne czyszczenie.

saeedraza@virtualbox: ~ $ cd Mongo-CXX-Driver-R3.7.0
Saeedraza@VirtualBox: ~/Mongo-Cxx-Driver-R3.7.0 $ CMAKE -DENABLE_AUTOMATOM -INIT_AND_CLEARNUP = OFF

Zbuduj sterownik MongoCXX w tym samym katalogu za pomocą flagi „-Build”.

Saeedraza@VirtualBox: ~/Mongo-Cxx-Driver-R3.7.0 $ cmake -Build .

Aby zainstalować sterownik zbudowany, uruchom następującą instrukcję:

Saeedraza@VirtualBox: ~/Mongo-Cxx-Driver-R3.7.0 $ cmake -Build . --Instalacja celu

Przykład kodu C ++

Począwszy od przykładu kodu C ++, aby rozwinąć łączność MongoDB z C ++, używamy kodu Visual Studio w naszym systemie. Utwórz plik C ++, w którym musisz zbudować sterownik MongoCXX i uruchomić kod. Kod rozpoczyna się od użycia podstawowych bibliotek „C ++” wraz z włączeniem plików kompilacji Mogocxx, które są przechowywane w folderze sterownika po kompilacji. Wszystkie wymagane ścieżki plików są zawarte jako nagłówki.

Następnie rozpoczynamy naszą funkcję Main (), aby rozpocząć łączność. Instancja MongoDB jest wykonana i deklarujemy ścieżkę adresu klienta jako „URI”, która jest potrzebna do połączenia między C ++ a MongoDB. Strumień dokumentów jest wykonany jako „DOC”. Instrukcja „TRY-Catch” jest wykorzystywana do uruchomienia ważnego zadania do wykonania i wyświetlania błędu w połączeniu. Instrukcja TRY deklaruje klienta za pomocą zmiennej „URI” w zmiennej „Con”. Baza danych „testowa” jest używana w zmiennej „Con”, a kolekcja „Mongo” jest wywoływana z bazy danych „Test”.

Zmienna dokumentu jest generowana, a pętla „dla” jest tutaj, aby uzyskać 2 zmienne wartości, „nazwa” i „Job”, z kolekcji „Mongo” przy użyciu formatu „BSON”. Oba rekordy są wyświetlane jako dokument. Oświadczenie Catch () jest tutaj, na wypadek, gdyby połączenie nie zostało ustalone.

#włączać
#włączać
#włączać
#włączać
#włączać
#włączać
#włączać
#włączać
#włączać
#włączać
używając BSONCXX :: Builder :: Stream :: Close_Array;
używając BSONCXX :: Builder :: Stream :: Close_document;
Korzystanie z BSONCXX :: Builder :: Stream :: Document;
Korzystanie z BSONCXX :: Builder :: Stream :: Finalize;
używając BSONCXX :: Builder :: Stream :: Open_Array;
używając 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;
próbować
MONGOCXX :: Client Con (URI);
MONGOCXX :: baza danych db = con („test”)
MONGOCXX :: Collection col = db [„Mongo”];
Doc << "job" << argv[1];
Mongocxx :: kursor cur = col.Znajdź (Doc.pogląd());
dla (auto && d: cur)
BSONCXX :: Document :: Nazwa elementu = D [„Nazwa”];
BSONCXX :: Document :: Element Job = D [„Job”];
std :: String strname = std :: String (nazwa.get_utf8 ().wartość);
std :: String strjob = std :: String (zadanie.get_utf8 ().wartość);
STD :: Cout << "Employee: " << Name << " : "<< Job <
catch (const std :: wyjątek i e)
STD :: Cout <<"Connection Faild!" << e.what() << std::endl;
return exit_failure;

powrót 0;

Po uruchomieniu tego pliku kodu C ++ możemy pobrać rekordy kolekcji Mongo z testowej bazy danych, jak wyświetlono następująco:

Pracownik: Ainda: Policja

Wniosek

Ten przewodnik jest pakietem niezbędnych kroków do podjęcia procesu łączności C ++ z serwerem bazy danych MongoDB. Począwszy od wprowadzenia, wyjaśniliśmy różnicę łączności między C ++ i innymi językami z MongoDB. Po zainstalowaniu warunków wstępnych omówiliśmy metodę instalacji serwera MongoDB wraz z niektórymi jego zależnościami przed instalacją sterownika MongoDB C ++. Ostatecznie program C ++ jest używany w Studio Visual po zbudowaniu sterownika MongoCXX do połączenia z MongoDB.