Ako prepojiť MongoDB s Golang

Ako Prepojit Mongodb S Golang



Rovnako ako jazyk C, aj jazyk Golang je jazyk s otvoreným zdrojovým kódom, ktorý je možné spustiť na mnohých nástrojoch v systémoch Windows a Linux/Unix na vytváranie záznamov. Podobne ako C++ a Java môžeme vytvoriť spojenie medzi klientskym systémom MongoDB a jazykom Go pomocou akéhokoľvek nástroja golang. Aby sme to dosiahli, vykonáme niekoľko veľmi dôležitých a potrebných krokov v Ubuntu 22.04 pomocou nástroja Visual Studio na kód pre program. Pred vytvorením spojenia s kompasom MongoDB máme tendenciu nainštalovať kód MongoDB a Visual Studio spolu s „go“ a požadovanými rozšíreniami v príručke, ktoré vám pomôžu v jazyku Go.

Nainštalujte MongoDB

Stiahli sme balík „deb“ servera MongoDB z jeho oficiálnej webovej stránky. Balík „Deb“ je možné spustiť aj v Ubuntu pomocou príkazového nástroja „dpkg“ na termináli.







Spustil súbor servera MongoDB na termináli s právami „sudo“ a poskytol prístupový kód.



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


Ak ste na svojom konci zistili, že služba MongoDB je neaktívna po vyskúšaní „systemctl“ inštrukcie Ubuntu na kontrolu stavu, môžete ju tiež aktualizovať. Ak chcete aktivovať MongoDB, vyskúšajte inštrukciu systemctl s kľúčovými slovami „štart“ a „povoliť“.

saeedraza@virtualbox:~$ sudo systemctl štart mongod
saeedraza@virtualbox:~$ sudo systemctl povoliť mongod
saeedraza@virtualbox:~$ sudo systemctl status mongod

Spustite MongoDB

Po inštalácii rýchlo spustite shell MongoDb pomocou dotazu „mongo“. Prepnite sa do databázy „admin“ a vykonajte postup.

saeedraza@virtualbox:~$ mongo
Verzia prostredia MongoDB v5.0.14
pripojenie k: mongodb: // 127.0.0.1: 27017 / ? kompresory = zakázaný & gssapiServiceName = mongodb
Implicitná relácia: relácia { 'id' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
Verzia servera MongoDB: 6.0.3


Pomocou funkcie createUser() vytvárame nového používateľa s právami správcu.

> použite admin
prešiel na db admin
> db.createUser (
... {
...užívateľ: 'Saeed' ,
... pwd: '12345' ,
... role: [ { rola: 'userAdminAnyDatabase' , db: 'admin' } , 'readWriteAnyDatabase' ]

... } )
Používateľ bol úspešne pridaný: {
'užívateľ' : 'Saeed' ,
'role' : [
{
'rola' : 'userAdminAnyDatabase' ,
'db' : 'admin'
} ,
'readWriteAnyDatabase'
]
}


Autorizoval používateľa „Saeed“ pomocou poverení vo funkcii „auth“ a zobrazil aktuálne vlastnené databázy MongoDB.

> db.auth ( 'Saeed' , '12345' )
jeden
> zobraziť dbs
správca   0,000 GB
konfigurácia 0,000 GB
miestne 0,000 GB

Nainštalujte ovládač MongoDB pre Golang

Otvorte terminál v kóde Visual Studio a presuňte sa do priečinka „Golang“, do ktorého ste chceli pridať súbory zdrojového kódu. Spustite inštrukciu „go mod init“ s názvom priečinka a vytvorte súbor „go.mod“. Načítajte ovládač MongoDB pre jazyk Go pomocou dotazu „go get“.

saeedraza@virtualbox:~/Golang$ prejdite do režimu Golang


V niektorých prípadoch je potrebné načítať aj ovládač MongoDB vo formáte bson pre Golang.

saeedraza@virtualbox:~/Golang$ go get go.mongodb.org / mongo-vodič / bson


Nezabudnite pridať potrebné balíky rozšírení, ako napríklad „gopls“ do kódu Visual Studio pomocou panela Rozšírenia bez použitia akýchkoľvek pokynov.


Spolu s „gopls“ môže Golang vyžadovať inštaláciu nástroja „dlv“.

Príklad Going Code

Súbor kódu “main.go” bol spustený importom niektorých užitočných balíkov, ktoré sa použijú v celom kóde na pripojenie. Celkovo sa tu uskutočnilo 7 dovozov. Po importovaní balíkov sme vytvorili novú štruktúru s názvom MongoField so 4 dátovými členmi typu JSON. 2 z týchto dátových členov sú reťazce a 2 z nich sú celé čísla.

Potom je deklarovaný konštantný typ premennej „uri“ s adresou klienta alebo do nej musíte pridať svoju adresu localhost podľa používateľského mena a hesla. Funkcie main() začínajú použitím funkcie connect() Golang na spojenie s MongoDB cez objekt „mongo“. Funkcia ApplyURI() bude brať premennú „uri“ ako svoj argument, ktorý sa použije na funkciu Client(), aby bolo možné nadviazať spojenie cez adresu hostiteľa. Kontextový balík hrá hlavnú úlohu pri volaní funkcie TODO() na vyžiadanie spojenia. Ak sa spojenie medzi kódom Visual Studio a MongoDB úspešne vytvorí, signál vrátený klientom sa pridá do premennej „client“; v opačnom prípade sa chyba uloží do premennej „err“.

Príkaz „if“ je tu na to, aby sa príslušné správy zobrazili. Ak má premenná „err“ inú hodnotu ako „nula“, funkcia Println() z balíčka formátov „fmt“ vypíše túto chybu na výstupnú obrazovku, terminál. Ak sa vyskytne chyba, na ukončenie programu sa použije balík „os“. Kontextový balík sa tu opäť používa na správu časového limitu pre spojenie, ktoré sa má vytvoriť prostredníctvom tohto programu. Pre konkrétnu hodnotu časového limitu „ctx“ sa náš program spustí. V klientovi MongoDB cez Golang bude vytvorená nová kolekcia „Person“ spolu s novou databázou „New“. Funkcia Println() zobrazí typ kolekcie „c“ pomocou funkcie „TypeOf“ z balíka Reflect.

Záznam „Rec“ sa vytvoril pomocou štruktúry dátových členov MongoField, ktoré sa tu inicializujú jeden po druhom. Zobrazí sa typ záznamu a záznam „Rec“ sa vloží do klienta MongoDB pomocou funkcie insertOne s objektom kolekcie „c“. Úspešné vloženie vedie k tomu, že premenná „výsledok“ bude mať hodnotu úspechu, zatiaľ čo premenná „insertErr“ bude obsahovať hodnotu zlyhania. Príkaz „if“ sa opäť používa na kontrolu a zobrazenie chyby pri vkladaní záznamu iba vtedy, ak premenná „insertErr“ obsahuje inú hodnotu ako „nula“. V opačnom prípade bude časť príkazu „else“ obsahovať niektoré príkazy Println() na zobrazenie typu záznamu, ktorý sa má vložiť, ID záznamu a správu o úspešnosti pripojenia a vloženia, ktoré sa uskutočnilo. Golang kód je teraz kompletný.

hlavný balík
importovať (
'kontext'
'fmt'
'ty'
'reflektovať'
'čas'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
typu Štruktúra MongoField {
Názov   reťazec ` json: 'Field Str' `
E-mailový reťazec ` json: 'Field Str' `
Vek    int ` json: 'Pole Int' `
Plat int ` json: 'Pole Int' `
}
const uri = 'mongodb: // Používateľ: Heslo @ localhost: 27017 / ? maxPoolSize = dvadsať & v = väčšina”
func main ( ) {
klient, chyba := mongo.Connect ( kontext.VŠETKY ( ) ,možnosti.Klient ( ) .PoužiťURI ( typu ) )
ak chybovať ! = nula {
fmt.Println ( 'Chyba Mongo.connect(): ' , chyba )
os. Ukončiť ( jeden )
}
ctx, _ := context.WithTimeout ( kontext.Pozadie ( ) , pätnásť * čas.Druhý )
c := klient.Databáza ( 'Nový' ) .Kolekcia ( 'osoba' )
fmt.Println ( 'Typ kolekcie: ' , odrážať.Typ ( c ) , ' \n ' )
Rec := MongoField {
Názov: 'EDEN' ,
Email: 'eden@gmail.com' ,
Vek: Štyri, päť ,
plat: 50 000 }
fmt.Println ( 'Typ záznamu:' , odrážať.Typ ( Rec ) , ' \n ' )
výsledok, insertErr := c.InsertOne ( ctx, Rec )
ak insertErr ! = nula {
fmt.Println ( 'Chyba vloženia One: ' , vložteErr )
os. Ukončiť ( jeden )
} inak {
fmt.Println ( 'Vložte typ výsledku: ' , odrážať.Typ ( výsledok ) )
newID = result.InsertID
fmt.Println ( 'Vložené ID záznamu: ' , nové ID ) )
fmt.Println ( 'Úspešne pripojené a vložené záznamy!' )
} }


Uložte kód Golang a otvorte terminál v priečinku Golang. Teraz použite inštrukciu „go“ s kľúčovým slovom „run“ na spustenie súboru s kódom „main.go“. Ladenie bolo úspešné a zbierka „Person“ bola úspešne vygenerovaná v MongoDB. Výstup zobrazuje typ kolekcie, typ záznamu, typ výsledku a „ID“ záznamu.

saeedraza @ virtualbox:~ / Golang$ Go Spustite Main.go
Typ zbierky: * mongo.Kolekcia
Typ záznamu: main.MongoField
Typ výsledku InsertOne: * mongo.InsertOneResult
Vložené ID záznamu: ObjectID ( '63a8535ac97b4218230664b6' )
Úspešne pripojené a vložené záznamy.


Na svojom konci otvorte kompas „MongoDB“ a pripojte sa k jeho miestnemu hostiteľovi pomocou „URI“.


Po presunutí do databázy „Nová“ sa nám v sekcii „Dokumenty“ zobrazuje zbierka „Osoba“ spolu so záznamom, ktorý sme pridali.

Záver

Táto príručka ilustruje použitie jazyka Go na pridávanie záznamov do klienta MongoDB pomocou nástroja Visual Studio Code v systéme Linux. Na tento účel sme do systému nainštalovali mongodb spolu s ovládačom mongodb pre „golang“. Pomocou jazyka Golang sme vytvorili súbor „go“ v MongoDB a diskutovali o rôznych balíkoch a funkciách Golang na vytvorenie pripojenia k MongoDB a vloženie záznamov. Nakoniec sme výsledky demonštrovali na kompase MongoDB, ktorý ukazuje, že k MongoDB môžete pripojiť akýkoľvek nástroj Golang.