Kako povezati MongoDB z Golangom

Kako Povezati Mongodb Z Golangom



Tako kot jezik C je tudi jezik Golang odprtokodni jezik, ki ga je mogoče izvajati v številnih orodjih v sistemih Windows in Linux/Unix za ustvarjanje zapisov. Tako kot C++ in Java lahko vzpostavimo povezavo med odjemalskim sistemom MongoDB in jezikom Go z uporabo katerega koli orodja golang. Da bi to naredili, bomo izvedli več zelo pomembnih in potrebnih korakov v Ubuntu 22.04 z uporabo kodnega orodja Visual Studio za program. Preden vzpostavimo povezavo s kompasom MongoDB, ponavadi namestimo MongoDB in kodo Visual Studio skupaj z »go« in zahtevanimi razširitvami v vodniku, ki vam bodo pomagali pri jeziku Go.

Namestite MongoDB

Prenesli smo paket »deb« strežnika MongoDB z njegove uradne spletne strani. Paket »Deb« je mogoče izvesti tudi v Ubuntuju z ukaznim orodjem »dpkg« na terminalu.







Izvedel datoteko strežnika MongoDB na terminalu s pravicami »sudo« in zagotovil geslo.



saeedraza@virtualbox:~$ sudo dpkg -jaz mongodb-org-strežnik_6.0.3_amd64.deb


Če ste ugotovili, da je storitev MongoDB na vašem koncu neaktivna, potem ko ste preizkusili navodilo »systemctl« Ubuntuja za preverjanje stanja, jo lahko tudi posodobite. Če želite aktivirati MongoDB, poskusite z navodilom systemctl s ključnima besedama 'start' in 'enable'.

saeedraza@virtualbox:~$ sudo systemctl zaženi mongod
saeedraza@virtualbox:~$ sudo systemctl omogočiti mongod
saeedraza@virtualbox:~$ sudo sistemski status mongod

Zaženite MongoDB

Po namestitvi hitro zaženite lupino MongoDb s poizvedbo »mongo«. Za izvedbo naslednjih korakov preklopite na bazo podatkov »admin«.

saeedraza@virtualbox:~$ mongo
Različica lupine MongoDB v5.0.14
povezovanje z: mongodb: // 127.0.0.1: 27017 / ? kompresorji = onemogočeno & gssapiServiceName =mongodb
Implicitna seja: seja { 'id' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
Različica strežnika MongoDB: 6.0.3


S funkcijo createUser() ustvarjamo novega uporabnika s skrbniškimi pravicami.

> uporabi admin
preklopil na db admin
> db.createUser (
... {
... uporabnik: 'Saed' ,
... pwd: '12345' ,
... vloge: [ { vloga: 'userAdminAnyDatabase' , db: 'admin' } , 'readWriteAnyDatabase' ]

... } )
Uspešno dodan uporabnik: {
'uporabnik' : 'Saed' ,
'vloge' : [
{
'vloga' : 'userAdminAnyDatabase' ,
'db' : 'admin'
} ,
'readWriteAnyDatabase'
]
}


Pooblastil uporabnika »Saeed« z uporabo poverilnic v funkciji »auth« in prikazal trenutno lastniške baze podatkov MongoDB.

> db.auth ( 'Saeed' , '12345' )
eno
> pokaži dbs
admin   0.000GB
konfiguracija 0,000 GB
lokalni 0,000 GB

Namestite gonilnik MongoDB za Golang

Odprite terminal v Visual Studio Code in se premaknite znotraj mape »Golang«, v katero ste želeli dodati datoteke izvorne kode. Zaženite navodilo »go mod init« z imenom mape, da ustvarite datoteko »go.mod«. Naložite gonilnik MongoDB za jezik Go s poizvedbo »go get«.

saeedraza@virtualbox:~/Golang$ go mod init Golang


V nekaterih primerih je treba naložiti tudi gonilnik MongoDB za format bson za Golang.

saeedraza@virtualbox:~/Golang$ pojdi po go.mongodb.org / mongo-voznik / bson


Prepričajte se, da ste dodali potrebne razširitvene pakete, kot je »gopls«, v kodo Visual Studio z uporabo plošče Razširitve brez uporabe kakršnih koli navodil.


Poleg »gopls« lahko Golang zagotovo zahteva namestitev orodja »dlv«.

Primer tekoče kode

Datoteka s kodo »main.go« je bila zagnana z uvozom nekaterih uporabnih paketov, ki bodo uporabljeni v celotni kodi za povezavo. Tu je bilo opravljenih skupno 7 uvozov. Po uvozu paketov smo ustvarili novo strukturo z imenom MongoField s 4 podatkovnimi člani tipa JSON. 2 od teh podatkovnih članov sta niza, 2 pa cela števila.

Po tem je konstanten tip spremenljivke »uri« deklariran z naslovom odjemalca ali pa morate vanjo dodati svoj naslov lokalnega gostitelja glede na uporabniško ime in geslo. Funkcije main() se začnejo z uporabo funkcije connect() Golanga za povezavo z MongoDB prek predmeta »mongo«. Funkcija ApplyURI() bo vzela spremenljivko »uri« kot argument za uporabo v funkciji Client(), tako da bo mogoče vzpostaviti povezavo prek naslova gostitelja. Kontekstni paket je imel glavno vlogo pri klicanju funkcije TODO() za zahtevo po povezavi. Če je bila povezava med kodo Visual Studio in MongoDB uspešno vzpostavljena, bo signal, ki ga vrne odjemalec, dodan spremenljivki »odjemalec«; sicer bo napaka shranjena v spremenljivki “err”.

Izjava »če« je tukaj, da ustrezno prikaže sporočila. Če spremenljivka »err« dobi drugo vrednost kot »nil«, bo funkcija Println() iz paketa »fmt« formatnega paketa to napako natisnila na izhodni zaslon, terminal. Če pride do napake, bo za izhod iz programa uporabljen paket »os«. Kontekstni paket se tukaj spet uporablja za upravljanje časovne omejitve za povezavo, ki se vzpostavi prek tega programa. Za določeno vrednost časovne omejitve 'ctx' se bo naš program izvajal. Nova zbirka »Person« skupaj z novo bazo podatkov »New« bo ustvarjena v odjemalcu MongoDB prek Golanga. Println() bo prikazal vrsto zbirke 'c' z uporabo funkcije 'TypeOf' iz paketa reflect.

Zapis »Rec« je bil ustvarjen z uporabo podatkovnih članov strukture MongoField, ki so tukaj inicializirani eden za drugim. Vrsta zapisa je bila prikazana in zapis »Rec« bo vstavljen v odjemalca MongoDB z uporabo funkcije insertOne z objektom zbirke »c«. Uspešno vstavljanje vodi do spremenljivke »result«, ki vsebuje vrednost uspeha, medtem ko bo spremenljivka »insertErr« vsebovala vrednost neuspeha. Stavek »if« se ponovno uporabi za preverjanje in prikaz napake pri vstavljanju zapisa le, če spremenljivka »insertErr« vsebuje vrednost, ki ni »nil«. V nasprotnem primeru bo del stavka »else« vseboval nekaj stavkov Println() za prikaz vrste zapisa, ki ga je treba vstaviti, ID zapisa in sporočilo o uspehu za vzpostavljeno povezavo in vstavljanje. Koda Golang je zdaj končana.

glavni paket
uvoz (
'kontekst'
'fmt'
'ti'
'odsevati'
'čas'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
vrsta Struktura MongoField {
Ime   niz ` json: 'Field Str' `
E-poštni niz ` json: 'Field Str' `
Starost    int ` json: 'Field Int' `
Plača medn ` json: 'Field Int' `
}
const uri = “mongodb: // Uporabnik: Geslo @ lokalni gostitelj: 27017 / ? maxPoolSize = dvajset & v =večina”
glavna funkcija ( ) {
odjemalec, napaka := mongo.Connect ( kontekst.VSE ( ) ,možnosti.Stranka ( ) .UporabiURI ( vrsta ) )
če napaka ! = nič {
fmt.Println ( 'Napaka Mongo.connect(): ' , napaka )
os. Izhod ( eno )
}
ctx, _ := context.WithTimeout ( kontekst.Ozadje ( ) , petnajst * čas.Drugič )
c := odjemalec.Baza podatkov ( 'novo' ) .Zbirka ( 'Oseba' )
fmt.Println ( 'Vrsta zbirke: ' , reflect.TypeOf ( c ) , ' \n ' )
Rec := MongoField {
ime: 'EDEN' ,
E-naslov: 'eden@gmail.com' ,
starost: Štiri, pet ,
plača: 50000 }
fmt.Println ( 'Vrsta zapisa: ' , reflect.TypeOf ( Rec ) , ' \n ' )
rezultat, insertErr := c.InsertOne ( ctx, Rec )
če vstaviErr ! = nič {
fmt.Println ( 'Napaka InsertOne: ' , vstaviErr )
os. Izhod ( eno )
} drugače {
fmt.Println ( 'Vrsta rezultata InsertOne: ' , reflect.TypeOf ( rezultat ) )
newID = rezultat.InsertedID
fmt.Println ( 'ID vstavljenega zapisa: ' , novoID ) )
fmt.Println ( 'Uspešno povezani in vstavljeni zapisi!' )
} }


Shranite kodo Golang in odprite terminal v mapi Golang. Zdaj uporabite navodilo »go« s ključno besedo »run« za izvedbo kodne datoteke »main.go«. Odpravljanje napak je bilo uspešno in zbirka »Person« je bila uspešno ustvarjena v MongoDB. Izhod prikazuje vrsto zbirke, vrsto zapisa, vrsto rezultata in »ID« zapisa.

saeedraza @ virtualbox:~ / Golang$ Pojdi Zaženi Main.go
Vrsta zbirke: * mongo.Zbirka
Vrsta zapisa: main.MongoField
Vrsta rezultata InsertOne: * mongo.InsertOneResult
ID vstavljenega zapisa: ObjectID ( “63a8535ac97b4218230664b6” )
Uspešno povezani in vstavljeni zapisi.


Odprite kompas »MongoDB« na svojem koncu in se povežite z njegovim lokalnim gostiteljem z uporabo »URI«.


Po premikanju znotraj baze podatkov »Novo« imamo zbirko »Oseba« prikazano v razdelku »Dokumenti« skupaj z zapisom, ki smo ga dodali.

Zaključek

Ta priročnik ponazarja uporabo jezika Go za dodajanje zapisov v odjemalcu MongoDB z uporabo orodja Visual Studio Code v sistemu Linux. Za to smo v sistem namestili mongodb skupaj z gonilnikom mongodb za »golang«. Z uporabo jezika Golang smo ustvarili datoteko »go« v MongoDB in razpravljali o različnih paketih in funkcijah Golanga za ustvarjanje povezave z MongoDB in vstavljanje zapisov. Na koncu smo prikazali rezultate na kompasu MongoDB, ki kaže, da lahko katero koli orodje Golang povežete z MongoDB.