Jak połączyć MongoDB z Golangiem

Jak Polaczyc Mongodb Z Golangiem



Podobnie jak język C, język Golang jest również językiem open-source, który może być uruchamiany na wielu narzędziach w systemach Windows i Linux/Unix w celu tworzenia rekordów. Podobnie jak C++ i Java, możemy nawiązać połączenie między systemem klienckim MongoDB a językiem Go za pomocą dowolnego narzędzia golang. Aby to zrobić, wykonamy kilka bardzo ważnych i niezbędnych kroków w Ubuntu 22.04, używając narzędzia kodu Visual Studio dla programu. Przed nawiązaniem połączenia z kompasem MongoDB zwykle instalujemy MongoDB i Visual Studio Code wraz z „go” i wymaganymi rozszerzeniami w przewodniku, aby pomóc Ci w języku Go.

Zainstaluj MongoDB

Pobraliśmy pakiet „deb” serwera MongoDB z jego oficjalnej strony internetowej. Pakiet „Deb” można również uruchomić w systemie Ubuntu za pomocą narzędzia poleceń „dpkg” w terminalu.







Uruchomiłem plik serwera MongoDB na terminalu z uprawnieniami „sudo” i podałem hasło.



saeedraza@virtualbox:~$ Sudo dpkg -ja mongodb-org-server_6.0.3_amd64.deb


Jeśli stwierdzisz, że usługa MongoDB jest nieaktywna po wypróbowaniu instrukcji „systemctl” Ubuntu w celu sprawdzenia statusu, możesz ją również zaktualizować. Aby aktywować MongoDB, wypróbuj instrukcję systemctl ze słowami kluczowymi „start” i „enable”.

saeedraza@virtualbox:~$ Sudo systemctl uruchom mongod
saeedraza@virtualbox:~$ Sudo systemctl włączyć mongod
saeedraza@virtualbox:~$ Sudo stan systemctl mongod

Uruchom MongoDB

Po instalacji szybko uruchom powłokę MongoDb za pomocą zapytania „mongo”. Przejdź do bazy danych „admin”, aby wykonać dalsze kroki.

saeedraza@virtualbox:~$ mongo
Wersja powłoki MongoDB v5.0.14
łączenie z: mongodb: // 127.0.0.1: 27017 / ? sprężarki = wyłączone & gssapiNazwaUsługi =mongodb
Sesja niejawna: sesja { 'ID' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
Wersja serwera MongoDB: 6.0.3


Tworzymy nowego użytkownika z uprawnieniami administratora za pomocą funkcji createUser().

> użyj admina
przełączyłem się na administratora db
> db.createUżytkownik (
... {
... użytkownik: 'Saied' ,
... pwd: '12345' ,
... role: [ { rola: „userAdminDowolna baza danych” , baza danych: 'Admin' } , 'readWriteAnyDatabase' ]

... } )
Użytkownik dodany pomyślnie: {
'użytkownik' : 'Saied' ,
„role” : [
{
'rola' : „userAdminDowolna baza danych” ,
'db' : 'Admin'
} ,
'readWriteAnyDatabase'
]
}


Autoryzował użytkownika „Saeed” za pomocą poświadczeń w funkcji „auth” i wyświetlał aktualnie posiadane bazy danych MongoDB.

> db.auth ( „Saeed” , '12345' )
jeden
> pokaż db
administrator  0,000 GB
konfiguracja 0,000 GB
lokalny 0,000 GB

Zainstaluj sterownik MongoDB dla Golang

Otwórz terminal w Visual Studio Code i przejdź do folderu „Golang”, w którym chcesz dodać pliki kodu źródłowego. Uruchom instrukcję „go mod init” z nazwą folderu, aby utworzyć plik „go.mod”. Załaduj sterownik MongoDB dla języka Go za pomocą zapytania „go get”.

saeedraza@virtualbox:~/Golang$ przejdź do mod init Golang


W niektórych przypadkach wymagane jest również załadowanie sterownika MongoDB w formacie bson dla Golang.

saeedraza@virtualbox:~/Golang$ przejdź do go.mongodb.org / mongo-kierowca / bson


Pamiętaj, aby dodać niezbędne pakiety rozszerzeń, takie jak „gopls”, w kodzie programu Visual Studio za pomocą panelu Rozszerzenia bez użycia żadnych instrukcji.


Wraz z „goplami” Golang może na pewno wymagać zainstalowania narzędzia „dlv”.

Przykład kodu idącego

Plik kodu „main.go” został uruchomiony z importem kilku przydatnych pakietów, które zostaną wykorzystane w całym kodzie do połączenia. W sumie dokonano tutaj 7 importów. Po zaimportowaniu pakietów stworzyliśmy nową strukturę o nazwie MongoField zawierającą 4 składowe danych typu JSON. 2 z tych elementów danych to ciągi znaków, a 2 z nich to liczby całkowite.

Następnie zadeklarowano stały typ zmiennej „uri” z adresem klienta lub należy dodać do niej adres localhost zgodnie z nazwą użytkownika i hasłem. Funkcje main() rozpoczynają się od użycia funkcji connect() Golanga do połączenia z MongoDB poprzez obiekt „mongo”. Funkcja ApplyURI() będzie przyjmować zmienną „uri” jako argument do zastosowania w funkcji Client(), aby można było nawiązać połączenie za pośrednictwem adresu hosta. Pakiet kontekstu odgrywał główną rolę w wywoływaniu funkcji TODO() w celu zażądania połączenia. Jeśli pomyślnie nawiązano połączenie między kodem Visual Studio a MongoDB, sygnał zwrócony przez klienta zostanie dodany do zmiennej „client”; w przeciwnym razie błąd zostanie zapisany w zmiennej „err”.

Instrukcja „if” służy do odpowiedniego wyświetlania komunikatów. Jeśli zmienna „err” ma wartość inną niż „nil”, funkcja Println() z pakietu formatu „fmt” wyświetli ten błąd na ekranie wyjściowym, terminalu. Pakiet „os” zostanie użyty do wyjścia z programu, jeśli wystąpi błąd. Pakiet kontekstowy jest tutaj ponownie wykorzystywany do zarządzania limitem czasu dla połączenia, które ma zostać ustanowione przez ten program. Dla określonej wartości limitu czasu „ctx” nasz program będzie się wykonywał. Nowa kolekcja „Person” wraz z nową bazą danych „New” zostanie utworzona w kliencie MongoDB za pośrednictwem Golang. Funkcja Println() będzie wyświetlać typ kolekcji „c” przy użyciu funkcji „TypeOf” z pakietu reflect.

Rekord „Rec” został utworzony przy użyciu elementów danych struktury MongoField, które są tutaj inicjowane jeden po drugim. Typ rekordu został wyświetlony, a rekord „Rec” zostanie wstawiony do klienta MongoDB za pomocą funkcji insertOne z obiektem kolekcji „c”. Pomyślne wstawienie prowadzi do tego, że zmienna „result” przechowuje wartość sukcesu, podczas gdy zmienna „insertErr” będzie przechowywać wartość niepowodzenia. Instrukcja „if” jest ponownie używana do sprawdzenia i wyświetlenia błędu przy wstawianiu rekordu tylko wtedy, gdy zmienna „insertErr” ma wartość inną niż „nil”. W przeciwnym razie część „else” instrukcji będzie zawierała kilka instrukcji Println() w celu wyświetlenia typu rekordu do wstawienia, identyfikatora rekordu oraz komunikatu o powodzeniu połączenia i wstawienia, które miało miejsce. Kod Golanga jest teraz gotowy.

Pakiet główny
import (
'kontekst'
'fmt'
'ty'
'odzwierciedlić'
'czas'
„go.mongodb.org/mongo-driver/mongo”
„go.mongodb.org/mongo-driver/mongo/options”
)
rodzaj Struktura MongoField {
Imię i nazwisko ` json: „ulica polowa” `
Ciąg znaków e-mail ` json: „ulica polowa” `
Wiek    wł ` json: „Pole Int” `
Wynagrodzenie wew ` json: „Pole Int” `
}
const uri = „mongodb: // Hasło użytkownika @ Lokalny Gospodarz: 27017 / ? maksymalny rozmiar puli = dwadzieścia & w = większość”
funkcja główna ( ) {
klient, błąd: = mongo.Połącz ( kontekst.ALL ( ) ,opcje.Klient ( ) .ZastosujURI ( rodzaj ) )
jeśli błądzić ! = zero {
fmt.Println ( „Błąd Mongo.connect():” , błąd )
os Wyjście ( jeden )
}
ctx, _ := kontekst.WithTimeout ( kontekst.Tło ( ) , piętnaście * czas.sekunda )
c := klient.Baza danych ( 'Nowy' ) .Kolekcja ( 'Osoba' )
fmt.Println ( „Typ kolekcji:” , odzwierciedlać.Rodzaj ( c ) , ' \n ' )
Rec := MongoField {
Imię: 'EDEN' ,
E-mail: 'eden@gmail.com' ,
Wiek: Cztery pięć ,
Pensja: 50000 }
fmt.Println ( 'Typ rekordu: ' , odzwierciedlać.Rodzaj ( Rekord ) , ' \n ' )
wynik, insertErr := c.InsertOne ( ctx, Rec )
jeśli wstawBłąd ! = zero {
fmt.Println ( „Wstaw jeden błąd:” , wstawBłąd )
os Wyjście ( jeden )
} w przeciwnym razie {
fmt.Println ( „Wstaw jeden typ wyniku:” , odzwierciedlać.Rodzaj ( wynik ) )
nowyID = wynik.WstawionyID
fmt.Println ( „Wstawiony identyfikator rekordu:” , nowyID ) )
fmt.Println ( „Pomyślnie połączono i wstawiono rekordy!” )
} }


Zapisz kod Golang i otwórz terminal w folderze Golang. Teraz użyj instrukcji „go” ze słowem kluczowym „run”, aby wykonać plik kodu „main.go”. Debugowanie powiodło się, a kolekcja „Person” została pomyślnie wygenerowana w MongoDB. Dane wyjściowe pokazują typ kolekcji, typ rekordu, typ wyniku i „ID” rekordu.

saeedraza @ skrzynka wirtualna: ~ / Golang$ Go Run Main.go
Rodzaj kolekcji: * mongo.Kolekcja
Typ rekordu: main.MongoField
Typ wyniku InsertOne: * mongo.WstawJedenWynik
Wstawiony identyfikator rekordu: ObjectID ( „63a8535ac97b4218230664b6” )
Pomyślnie połączono i wstawiono rekordy.


Otwórz kompas „MongoDB” na swoim końcu i połącz się z lokalnym hostem za pomocą „URI”.


Po przejściu w obrębie bazy „Nowy” mamy w sekcji „Dokumenty” wyświetloną kolekcję „Osoba” wraz z dodanym przez nas rekordem.

Wniosek

Ten przewodnik ilustruje użycie języka Go do dodawania rekordów w kliencie MongoDB przy użyciu narzędzia Visual Studio Code w systemie Linux. W tym celu zainstalowaliśmy mongodb wraz ze sterownikiem mongodb dla „golang” w systemie. Korzystając z języka Golang, stworzyliśmy plik „go” w MongoDB i omówiliśmy różnorodność pakietów i funkcji Golang, aby utworzyć połączenie z MongoDB i wstawić rekordy. Na koniec zademonstrowaliśmy wyniki na kompasie MongoDB, który pokazuje, że możesz podłączyć dowolne narzędzie Golang do MongoDB.