Kaip prijungti MongoDB su Golang

Kaip Prijungti Mongodb Su Golang



Kaip ir C kalba, Golang kalba taip pat yra atvirojo kodo kalba, kurią galima vykdyti daugelyje Windows ir Linux / Unix sistemų įrankių įrašams kurti. Kaip ir C++ ir Java, mes galime užmegzti ryšį tarp MongoDB kliento sistemos ir Go kalbos naudodami bet kurį golang įrankį. Norėdami tai padaryti, Ubuntu 22.04 atliksime kelis labai svarbius ir būtinus veiksmus, programai naudodami Visual Studio kodo įrankį. Prieš užmegzdami ryšį su MongoDB kompasu, mes linkę įdiegti MongoDB ir Visual Studio kodą kartu su „go“ ir reikalingais plėtiniais vadove, kad padėtume jums „Go“ kalba.

Įdiekite MongoDB

Atsisiuntėme MongoDB serverio „deb“ paketą iš oficialios svetainės. „Deb“ paketą taip pat galima vykdyti Ubuntu naudojant „dpkg“ komandų įrankį terminale.







Vykdė MongoDB serverio failą terminale su „sudo“ teisėmis ir pateikė prieigos kodą.



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


Jei „MongoDB“ paslauga buvo neaktyvi, kai išbandėte Ubuntu „systemctl“ instrukciją, kad patikrintumėte būseną, galite ją atnaujinti. Norėdami suaktyvinti MongoDB, išbandykite systemctl instrukcijas su raktiniais žodžiais 'start' ir 'enable'.

saeedraza@virtualbox:~$ sudo systemctl start mongod
saeedraza@virtualbox:~$ sudo systemctl įjungti mongodas
saeedraza@virtualbox:~$ sudo systemctl status mongod

Paleiskite MongoDB

Įdiegę greitai paleiskite MongoDb apvalkalą naudodami „mongo“ užklausą. Perjunkite į „administratoriaus“ duomenų bazę, kad atliktumėte tolesnius veiksmus.

saeedraza@virtualbox:~$ mongo
MongoDB apvalkalo versija v5.0.14
jungiasi prie: mongodb: // 127.0.0.1: 27017 / ? kompresoriai = neįgalus & gssapiServiceName =mongodb
Netiesioginis seansas: sesija { 'id' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
MongoDB serverio versija: 6.0.3


Kuriame naują vartotoją, turintį administratoriaus teises, naudodami funkciją createUser().

> naudoti admin
perjungta į db admin
> db.createUser (
... {
... Vartotojas: 'Saedas' ,
... pwd: '12345' ,
... vaidmenys: [ { vaidmuo: 'userAdminAnyDatabase' , db: 'adminas' } , 'readWriteAnyDatabase' ]

... } )
Sėkmingai pridėtas vartotojas: {
'Vartotojas' : 'Saedas' ,
'vaidmenys' : [
{
'vaidmuo' : 'userAdminAnyDatabase' ,
'db' : 'adminas'
} ,
'readWriteAnyDatabase'
]
}


Įgaliojo vartotoją „Saeed“, naudodamas „auth“ funkcijos kredencialus ir parodė šiuo metu priklausančias MongoDB duomenų bazes.

> db.auth ( 'Saeed' , „12345“ )
vienas
> rodyti dbs
administratorius 0,000 GB
konfigūracija 0,000 GB
vietinis 0.000 GB

Įdiekite „MongoDB“ tvarkyklę, skirtą „Golang“.

Atidarykite terminalą „Visual Studio Code“ ir pereikite į aplanką „Golang“, kuriame norėjote pridėti šaltinio kodo failus. Vykdykite „go mod init“ instrukciją su aplanko pavadinimu, kad sukurtumėte „go.mod“ failą. Įkelkite „Go“ kalbos „MongoDB“ tvarkyklę naudodami „go get“ užklausą.

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


Kai kuriais atvejais taip pat reikia įkelti bson formato MongoDB tvarkyklę, skirtą Golang.

saeedraza@virtualbox:~/Golang$ eik gauk go.mongodb.org / mongo vairuotojas / bson


Būtinai įtraukite reikiamus plėtinių paketus, pvz., „gopls“, „Visual Studio“ kode naudodami plėtinių skydelį, nenaudodami jokių nurodymų.


Kartu su „gopls“, „Golang“ gali reikalauti, kad būtinai būtų įdiegtas „dlv“ įrankis.

Vykdymo kodo pavyzdys

Kodo failas „main.go“ buvo paleistas importuojant kai kuriuos naudingus paketus, kurie bus naudojami visame prisijungimo kode. Iš viso čia buvo importuoti 7 produktai. Importavę paketus sukūrėme naują struktūrą pavadinimu MongoField su 4 JSON tipo duomenų nariais. 2 iš šių duomenų narių yra eilutės, o 2 iš jų yra sveikieji skaičiai.

Po to buvo deklaruojamas pastovus kintamojo tipas „uri“ su kliento adresu arba jame turite pridėti savo localhost adresą pagal vartotojo vardą ir slaptažodį. Pagrindinės () funkcijos pradedamos naudojant „Golang“ funkciją connect () norint prisijungti prie MongoDB per „mongo“ objektą. Funkcija ApplyURI() naudos kintamąjį „uri“ kaip argumentą, taikomą funkcijai Client(), kad būtų galima užmegzti ryšį per pagrindinio kompiuterio adresą. Kontekstinis paketas atliko pagrindinį vaidmenį iškviečiant TODO() funkciją, kad būtų prašoma prisijungti. Jei ryšys tarp Visual Studio kodo ir MongoDB sėkmingai užmegztas, kliento grąžintas signalas bus įtrauktas į kintamąjį „klientas“; kitu atveju klaida bus saugoma kintamajame „err“.

Teiginys „jei“ yra skirtas atitinkamai rodyti pranešimus. Jei „err“ kintamasis gavo kitą reikšmę nei „nulis“, funkcija Println() iš formato paketo „fmt“ paketo išspausdins tą klaidą išvesties ekrane, terminale. „os“ paketas bus naudojamas išeiti iš programos, jei įvyks klaida. Čia vėl naudojamas kontekstinis paketas, skirtas valdyti per šią programą ryšio užmezgimo skirtąjį laiką. Konkrečiai skirtojo laiko vertės „ctx“ atveju mūsų programa bus vykdoma. Kliente MongoDB per Golang bus sukurta nauja kolekcija „Person“ kartu su nauja duomenų baze „Naujas“. Println() rodys kolekcijos tipą „c“, naudodama funkciją „TypeOf“ iš atspindinčio paketo.

Įrašas „Rec“ buvo sukurtas naudojant struktūrą MongoField duomenų nariai, kurie čia inicijuojami po vieną. Įrašo tipas buvo rodomas ir įrašas „Rec“ bus įterptas į klientą MongoDB naudojant insertOne funkciją su rinkinio objektu „c“. Sėkmingas įterpimas veda į „rezultato“ kintamąjį, turintį sėkmės reikšmę, o „insertErr“ kintamajame bus išlaikyta nesėkmės reikšmė. Teiginys „if“ vėl naudojamas norint patikrinti ir parodyti klaidą įterpiant įrašą tik tuo atveju, jei „insertErr“ kintamasis turi kitą reikšmę nei „nulis“. Kitu atveju teiginio dalis „else“ turės kai kuriuos Println() teiginius, kad būtų rodomas įterpiamo įrašo tipas, įrašo ID ir sėkmingo prisijungimo bei įterpimo pranešimas. Dabar Golango kodas baigtas.

pagrindinis paketas
importuoti (
'kontekstas'
'fmt'
'tu'
'atspindėti'
'laikas'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
tipo MongoField struktūra {
pavadinimo eilutę ` json: „Field Str“ `
El. pašto eilutė ` json: „Field Str“ `
Amžius    tarp ` json: „Field Int“ `
Atlyginimas tarpt ` json: „Field Int“ `
}
const uri = 'mongodb: // Vartotojas: Slaptažodis @ localhost: 27017 / ? maxPoolSize = dvidešimt & in =dauguma“
pagrindinė funkcija ( ) {
klientas, klaida := mongo.Connect ( kontekstas.VISAS ( ) ,parinktys.Klientas ( ) .TaikytiURI ( tipo ) )
jeigu klysti ! = nulis {
fmt.Println ( 'Mongo.connect() klaida: ' , klysta )
os. Išeiti ( vienas )
}
ctx, _ := kontekstas.WithTimeout ( kontekstas.Fonas ( ) , penkiolika * laikas.Antra )
c := klientas.Duomenų bazė ( 'Naujas' ) .Kolekcija ( 'asmuo' )
fmt.Println ( „Kolekcijos tipas:“ , atspindi.TypeOf ( c ) , \n )
Rec := MongoField {
Vardas: 'EDEN' ,
El. paštas: 'eden@gmail.com' ,
Amžius: Keturi. Penki ,
Atlyginimas: 50 000 }
fmt.Println ( 'Įrašo tipas:' , atspindi.TypeOf ( Rec ) , \n )
rezultatas, insertErr := c.InsertOne ( ctx, Rec )
jeigu Įterpti Err ! = nulis {
fmt.Println ( 'InsertOne Error:' , Įterpkite Err )
os. Išeiti ( vienas )
} Kitas {
fmt.Println ( 'InsertOne rezultato tipas:' , atspindi.TypeOf ( rezultatas ) )
newID = rezultatas.InsertedID
fmt.Println ( 'Įterptas įrašo ID:' , naujas ID ) )
fmt.Println ( 'Sėkmingai prijungti ir įterpti įrašai!' )
} }


Išsaugokite Golang kodą ir atidarykite terminalą aplanke Golang. Dabar naudokite „go“ nurodymą su raktiniu žodžiu „run“, kad paleistumėte „main.go“ kodo failą. Derinimas buvo sėkmingas, o kolekcija „Asmuo“ buvo sėkmingai sugeneruota MongoDB. Išvestis rodo rinkinio tipą, įrašo tipą, rezultato tipą ir įrašo ID.

saedraza @ virtualus dėžutė: ~ / Golang$ Go Run Main.go
Kolekcijos tipas: * mongo.Kolekcija
Įrašo tipas: pagrindinis.MongoField
InsertOne rezultato tipas: * mongo.InsertOneResult
Įterptas įrašo ID: ObjectID ( „63a8535ac97b4218230664b6“ )
Sėkmingai prijungti ir įterpti įrašai.


Atidarykite „MongoDB“ kompasą savo gale ir prisijunkite prie jo vietinio pagrindinio kompiuterio naudodami „URI“.


Perkėlus „Nauja“ duomenų bazę, skiltyje „Dokumentai“ rodoma kolekcija „Asmuo“ kartu su mūsų pridėtu įrašu.

Išvada

Šis vadovas iliustruoja Go kalbos naudojimą įrašams pridėti MongoDB kliente naudojant „Visual Studio Code“ įrankį „Linux“ sistemoje. Tam sistemoje įdiegėme mongodb kartu su mongodb tvarkykle, skirta „golang“. Naudodami Golang kalbą, MongoDB sukūrėme 'go' failą ir aptarėme Golang paketų ir funkcijų įvairovę, kad sukurtume ryšį su MongoDB ir įterptume įrašus. Galų gale mes parodėme MongoDB kompaso rezultatus, kurie rodo, kad galite prijungti bet kurį Golang įrankį prie MongoDB.