Cum să conectați MongoDB cu Golang

Cum Sa Conectati Mongodb Cu Golang



La fel ca limbajul C, limbajul Golang este, de asemenea, un limbaj open-source care poate fi executat pe multe instrumente pe sistemele Windows și Linux/Unix pentru a crea înregistrări. La fel ca C++ și Java, putem face o conexiune între un sistem client MongoDB și limbajul Go folosind orice instrument golang. Pentru a face acest lucru, vom efectua câțiva pași foarte importanți și necesari în Ubuntu 22.04 utilizând instrumentul de cod Visual Studio pentru un program. Înainte de a face o conexiune cu busola MongoDB, avem tendința de a instala MongoDB și Visual Studio Code împreună cu „go” și extensiile necesare în ghid pentru a vă ajuta în limba Go.

Instalați MongoDB

Am descărcat pachetul „deb” al serverului MongoDB de pe site-ul său oficial. Pachetul „Deb” poate fi executat și în Ubuntu folosind instrumentul de comandă „dpkg” de pe Terminal.







Am executat fișierul server MongoDB pe terminal cu drepturi „sudo” și a furnizat o parolă.



saeedraza@virtualbox:~$ sudo dpkg -i mongodb-org-server_6.0.3_amd64.deb


Dacă ați găsit serviciul MongoDB inactiv după ce ați încercat instrucțiunea „systemctl” a Ubuntu pentru a verifica starea, îl puteți actualiza și el. Pentru a activa MongoDB, încercați instrucțiunea systemctl cu cuvintele cheie „start” și „enable”.

saeedraza@virtualbox:~$ sudo systemctl start mongod
saeedraza@virtualbox:~$ sudo systemctl permite mongod
saeedraza@virtualbox:~$ sudo systemctl status mongod

Lansați MongoDB

După instalare, lansați rapid shell-ul MongoDb folosind interogarea „mongo”. Treceți la baza de date „admin” pentru a efectua pașii de continuare.

saeedraza@virtualbox:~$ mongo
Versiunea shell MongoDB v5.0.14
se conectează la: mongodb: // 127.0.0.1: 27017 / ? compresoare =dezactivat & gssapiServiceName =mongodb
Sesiune implicită: sesiune { 'id' : UUID ( „34cc8e0f-b6b0-4191-adea-676411f66cf5” ) }
Versiunea serverului MongoDB: 6.0.3


Creăm un nou utilizator cu drepturi de administrator folosind funcția createUser().

> utilizați admin
a trecut la db admin
> db.createUser (
... {
... utilizator: 'Saeed' ,
... pwd: '12345' ,
... roluri: [ { rol: „userAdminAnyDatabase” , db: 'admin' } , „readWriteAnyDatabase” ]

... } )
Utilizator adăugat cu succes: {
'utilizator' : 'Saeed' ,
'roluri' : [
{
'rol' : „userAdminAnyDatabase” ,
'db' : 'admin'
} ,
„readWriteAnyDatabase”
]
}


A autorizat utilizatorul „Saeed” folosind acreditările în funcția „auth” și a afișat bazele de date MongoDB deținute în prezent.

> db.auth ( „Saeed” , '12345' )
unu
> arata dbs
admin   0.000 GB
configurație  0,000 GB
local 0.000 GB

Instalați driverul MongoDB pentru Golang

Deschideți terminalul în Visual Studio Code și mutați-vă în folderul „Golang” în care doriți să adăugați fișierele codului sursă. Rulați instrucțiunea „go mod init” cu numele folderului pentru a crea un fișier „go.mod”. Încărcați driverul MongoDB pentru limba Go prin interogarea „go get”.

saeedraza@virtualbox:~/Golang$ du-te la mod init Golang


În unele cazuri, este necesar să încărcați driverul MongoDB în format bson și pentru Golang.

saeedraza@virtualbox:~/Golang$ du-te la go.mongodb.org / mongo-sofer / bson


Asigurați-vă că adăugați pachetele de extensii necesare, cum ar fi „gopls” în codul Visual Studio folosind panoul Extensii, fără a folosi nicio instrucțiune.


Împreună cu „gopls”, Golang ar putea necesita instalarea cu siguranță a instrumentului „dlv”.

Exemplu de cod Going

Fișierul de cod „main.go” a fost pornit cu importul unor pachete utile care vor fi utilizate în întregul cod pentru conectare. Aici s-au făcut în total 7 importuri. După importarea pachetelor, am creat o nouă structură numită MongoField cu 4 membri de date de tip JSON în ea. 2 dintre acești membri de date sunt șiruri de caractere și 2 dintre ei sunt numere întregi.

După aceasta, un tip constant de variabilă „uri” a fost declarată cu o adresă de client sau trebuie să adăugați adresa localhost în ea în funcție de numele de utilizator și parola. Funcțiile main() încep cu utilizarea funcției connect() a Golang pentru a se conecta la MongoDB printr-un obiect „mongo”. Funcția ApplyURI() va lua variabila „uri” ca argument pentru a se aplica funcției Client(), astfel încât o conexiune să poată fi stabilită printr-o adresă gazdă. Pachetul context a jucat rolul principal de a apela funcția TODO() pentru a solicita o conexiune. Dacă conexiunea s-a stabilit între codul Visual Studio și MongoDB cu succes, semnalul returnat de client va fi adăugat la variabila „client”; în caz contrar, eroarea va fi stocată în variabila „err”.

Declarația „dacă” este aici pentru a afișa mesajele în consecință. Dacă variabila „err” a primit o altă valoare decât „nil”, funcția Println() din pachetul de format „fmt” va tipări acea eroare pe ecranul de ieșire, terminalul. Pachetul „os” va fi folosit pentru a ieși din program dacă apare eroarea. Pachetul de context este din nou utilizat aici pentru a gestiona timpul de expirare pentru ca conexiunea să fie stabilită prin acest program. Pentru valoarea de timeout specială „ctx”, programul nostru se va executa. O nouă colecție „Persoană” împreună cu o nouă bază de date „Nou” vor fi create în clientul MongoDB prin Golang. Println() va afișa tipul unei colecții „c” folosind funcția „TypeOf” din pachetul reflect.

O înregistrare „Rec” a fost creată folosind membrii de date din structura MongoField care sunt inițializați aici unul câte unul. Tipul de înregistrare a fost afișat și înregistrarea „Rec” va fi inserată în clientul MongoDB folosind funcția insertOne cu obiectul de colecție „c”. Inserarea cu succes duce la o variabilă „rezultat” care deține valoarea de succes, în timp ce variabila „insertErr” va menține valoarea de eșec. Instrucțiunea „dacă” este folosită din nou pentru a verifica și afișa eroarea la inserarea unei înregistrări numai dacă variabila „insertErr” deține altă valoare decât valoarea „nil”. În caz contrar, partea „altfel” a instrucțiunii va conține câteva instrucțiuni Println() pentru a afișa tipul unei înregistrări care trebuie inserată, ID-ul înregistrării și mesajul de succes pentru conexiunea și inserarea care a avut loc. Codul Golang este acum complet.

pachet principal
import (
'context'
'fmt'
'tu'
'Reflectați'
'timp'
„go.mongodb.org/mongo-driver/mongo”
„go.mongodb.org/mongo-driver/mongo/options”
)
tip Structura MongoField {
Nume   șir ` json: 'Field Str' `
șir de e-mail ` json: 'Field Str' `
Vârsta    int ` json: „Field Int” `
Salariu int ` json: „Field Int” `
}
const uri = „mongodb: // Parolă de utilizator @ gazdă locală: 27017 / ? maxPoolSize = douăzeci & în =majoritate”
func principal ( ) {
client, err := mongo.Connect ( context.TOATE ( ) ,opțiuni.Client ( ) .ApplyURI ( tip ) )
dacă a greșit ! = zero {
fmt.Println ( „Eroare Mongo.connect():” , greșeală )
os. Ieșire ( unu )
}
ctx, _ := context.WithTimeout ( context.Background ( ) , cincisprezece * timp.Al doilea )
c := client.Baza de date ( 'Nou' ) .Colectie ( 'Persoană' )
fmt.Println ( „Tipul de colecție:” , reflect.TypeOf ( c ) , ' \n ' )
Rec := MongoField {
Nume: 'EDEN' ,
E-mail: „eden@gmail.com” ,
Vârstă: Patru cinci ,
Salariu: 50000 }
fmt.Println ( 'Tipul de înregistrare: ' , reflect.TypeOf ( Rec ) , ' \n ' )
rezultat, insertErr := c.InsertOne ( ctx, Rec )
dacă insertErr ! = zero {
fmt.Println ( „Eroare InsertOne:” , inserațiErr )
os. Ieșire ( unu )
} altfel {
fmt.Println ( „Tipul de rezultat InsertOne:” , reflect.TypeOf ( rezultat ) )
ID nou = rezultat.ID introdus
fmt.Println ( „Inserat ID înregistrare:” , ID nou ) )
fmt.Println ( „Înregistrări conectate și introduse cu succes!” )
} }


Salvați codul Golang și deschideți terminalul din folderul Golang. Acum, utilizați instrucțiunea „go” cu cuvântul cheie „run” pentru a executa fișierul de cod „main.go”. Depanarea a avut succes și colecția „Persoană” a fost generată cu succes în MongoDB. Ieșirea arată tipul de colecție, tipul de înregistrare, tipul de rezultat și „ID”-ul unei înregistrări.

saeedraza @ virtualbox:~ / Golang$ Go Run Main.go
Tip colectie: * mongo.Colectie
Tip înregistrare: main.MongoField
Tip de rezultat InsertOne: * mongo.InsertOneResult
ID înregistrare introdus: ObjectID ( „63a8535ac97b4218230664b6” )
Înregistrări conectate și introduse cu succes.


Deschideți busola „MongoDB” la capătul dvs. și conectați-vă la gazda locală folosind „URI”.


După ce ne-am mutat în baza de date „Nouă”, avem colecția „Persoană” afișată în secțiunea „Documente” împreună cu înregistrarea pe care am adăugat-o.

Concluzie

Acest ghid ilustrează utilizarea limbajului Go pentru a adăuga înregistrări în clientul MongoDB folosind un instrument Visual Studio Code în sistemul Linux. Pentru aceasta, am instalat mongodb împreună cu driverul mongodb pentru „golang” în sistem. Folosind un limbaj Golang, am creat un fișier „go” în MongoDB și am discutat despre varietatea de pachete și funcții ale Golang pentru a crea o conexiune la MongoDB și a insera înregistrări. În cele din urmă, am demonstrat rezultatele pe busola MongoDB, care arată că puteți conecta orice instrument Golang la MongoDB.