Kuinka yhdistää MongoDB Golangiin

Kuinka Yhdistaa Mongodb Golangiin



Aivan kuten C-kieli, Golang-kieli on myös avoimen lähdekoodin kieli, joka voidaan suorittaa monilla Windows- ja Linux-/Unix-järjestelmien työkaluilla tietueiden luomiseksi. Kuten C++ ja Java, voimme muodostaa yhteyden MongoDB-asiakasjärjestelmän ja Go-kielen välille millä tahansa golang-työkalulla. Tätä varten suoritamme useita erittäin tärkeitä ja tarpeellisia vaiheita Ubuntu 22.04:ssä käyttämällä Visual Studio -koodityökalua ohjelmalle. Ennen kuin muodostat yhteyden MongoDB-kompassiin, meillä on tapana asentaa MongoDB ja Visual Studio Code sekä oppaan 'go' ja vaadittavat laajennukset, jotka auttavat sinua Go-kielellä.

Asenna MongoDB

Olemme ladaneet MongoDB-palvelimen 'deb'-paketin sen viralliselta verkkosivustolta. 'Deb'-paketti voidaan suorittaa myös Ubuntussa käyttämällä terminaalin 'dpkg'-komentotyökalua.







Suoritti MongoDB-palvelintiedoston päätteellä 'sudo'-oikeuksilla ja antoi pääsykoodin.



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


Jos huomasit MongoDB-palvelun käyttämättömänä, kun olet yrittänyt tarkistaa tilan Ubuntun 'systemctl'-käskyn avulla, voit myös päivittää sen. Voit aktivoida MongoDB:n kokeilemalla systemctl-ohjetta 'start'- ja 'enable'-avainsanoilla.

saeedraza@virtualbox:~$ sudo systemctl start mongod
saeedraza@virtualbox:~$ sudo systemctl ota käyttöön mongodi
saeedraza@virtualbox:~$ sudo systemctl status mongod

Käynnistä MongoDB

Asennuksen jälkeen käynnistä MongoDb-kuori nopeasti 'mongo'-kyselyllä. Siirry 'admin'-tietokantaan suorittaaksesi vaiheet.

saeedraza@virtualbox:~$ mongo
MongoDB-kuoren versio v5.0.14
yhdistäminen: mongodb: // 127.0.0.1: 27017 / ? kompressorit =vammainen & gssapiServiceName =mongodb
Implisiittinen istunto: istunto { 'id' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
MongoDB-palvelinversio: 6.0.3


Luomme uutta käyttäjää, jolla on järjestelmänvalvojan oikeudet, käyttämällä createUser()-funktiota.

> käytä admin
vaihdettu db-järjestelmänvalvojaan
> db.createUser (
... {
... käyttäjä: 'Saeed' ,
... pwd: '12345' ,
... roolit: [ { rooli: 'userAdminAnyDatabase' , db: 'admin' } , 'readWriteAnyDatabase' ]

... } )
Käyttäjä lisätty onnistuneesti: {
'käyttäjä' : 'Saeed' ,
'roolit' : [
{
'rooli' : 'userAdminAnyDatabase' ,
'db' : 'admin'
} ,
'readWriteAnyDatabase'
]
}


Valtuutti käyttäjän 'Saeed' käyttämällä valtuustietoja 'auth'-toiminnossa ja näytti MongoDB:n tällä hetkellä omistamat tietokannat.

> db.auth ( 'Saeed' , '12345' )
yksi
> näytä dbs
järjestelmänvalvoja 0,000 Gt
konfiguraatio 0.000GB
paikallinen 0.000GB

Asenna MongoDB-ajuri Golangille

Avaa pääte Visual Studio Codessa ja siirry kansioon 'Golang', johon halusit lisätä lähdekooditiedostosi. Luo go.mod-tiedosto suorittamalla 'go mod init' -ohje kansion nimellä. Lataa MongoDB-ohjain Go-kielelle 'go get' -kyselyn kautta.

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


Joissakin tapauksissa on ladattava myös bson-muotoinen MongoDB-ohjain Golangille.

saeedraza@virtualbox:~/Golang$ mene ja mene go.mongodb.org / mongo-kuljettaja / bson


Varmista, että lisäät tarvittavat laajennuspaketit, kuten 'gopls' Visual Studion koodiin Laajennukset-paneelin avulla ilman ohjeita.


Goplsin ohella Golang saattaa vaatia 'dlv'-työkalun asentamisen varmasti.

Going Code esimerkki

Kooditiedosto “main.go” on käynnistetty tuomalla joitain hyödyllisiä paketteja, joita tullaan käyttämään koko koodissa yhteyden muodostamiseen. Täällä on tuotu yhteensä 7 kappaletta. Pakettien tuonnin jälkeen loimme uuden rakenteen nimeltä MongoField, jossa oli 4 JSON-tyyppistä datajäsentä. 2 näistä datajäsenistä on merkkijonoja ja 2 niistä on kokonaislukuja.

Tämän jälkeen asiakasosoitteen kanssa on ilmoitettu vakiotyyppinen muuttuja ”uri” tai siihen on lisättävä localhost-osoitteesi käyttäjätunnuksen ja salasanan mukaan. Main()-funktiot alkavat Golangin connect()-funktiolla yhteyden muodostamiseksi MongoDB:hen 'mongo'-objektin kautta. ApplyURI()-funktio ottaa 'uri'-muuttujan argumenttina, jota sovelletaan Client()-funktioon, jotta yhteys voidaan muodostaa isäntäosoitteen kautta. Kontekstipaketilla on ollut päärooli kutsua TODO()-funktiota yhteyden pyytämiseksi. Jos Visual Studio -koodin ja MongoDB:n välille muodostettiin yhteys onnistuneesti, asiakkaan palauttama signaali lisätään 'asiakas'-muuttujaan; muuten virhe tallennetaan muuttujaan 'err'.

'if'-lause on tässä näyttääksesi viestit vastaavasti. Jos 'err'-muuttuja sai muun arvon kuin 'nolla', muotopaketin 'fmt'-paketin Println()-funktio tulostaa virheen tulostusnäytölle, päätteeseen. 'os'-pakettia käytetään poistumaan ohjelmasta, jos virhe ilmenee. Kontekstipakettia käytetään jälleen tässä hallitsemaan aikakatkaisua yhteyden muodostamiselle tämän ohjelman kautta. Tietylle aikakatkaisuarvolle 'ctx' ohjelmamme suoritetaan. Uusi kokoelma 'Person' sekä uusi tietokanta 'New' luodaan asiakaskoneeseen MongoDB Golangin kautta. Println() näyttää kokoelman 'c' tyypin käyttämällä 'TypeOf'-funktiota reflektoivasta paketista.

Tietue “Rec” luotiin käyttämällä rakennetta MongoField datajäsenet, jotka alustetaan tässä yksitellen. Tietuetyyppi tuli näkyviin ja tietue 'Rec' lisätään asiakas MongoDB:hen käyttämällä insertOne-funktiota kokoelmaobjektin 'c' kanssa. Onnistunut lisäys johtaa 'result'-muuttujaan, joka pitää sisällään onnistumisarvon, kun taas 'insertErr'-muuttuja säilyttää epäonnistumisarvon. 'if'-käskyä käytetään uudelleen tarkistamaan ja näyttämään virhe tietueen lisäyksessä vain, jos 'insertErr'-muuttuja sisältää muuta kuin 'nolla'-arvon. Muutoin käskyn 'else'-osassa on joitakin Println()-käskyjä, jotka näyttävät lisättävän tietueen tyypin, tietueen tunnuksen ja onnistumissanoman tapahtuneelle yhteyden ja lisäyksen yhteydessä. Golang-koodi on nyt valmis.

pääpaketti
tuonti (
'konteksti'
'fmt'
'sinä'
'heijastaa'
'aika'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
tyyppi MongoField-rakenne {
Nimimerkkijono ` json: 'Field Str' `
Sähköpostimerkkijono ` json: 'Field Str' `
Ikä    int ` json: 'Field Int' `
Palkka int ` json: 'Field Int' `
}
const uri = 'mongodb: // Käyttäjän salasana @ paikallinen isäntä: 27017 / ? maxPoolSize = kaksikymmentä & sisään =enemmistö'
func main ( ) {
asiakas, err := mongo.Connect ( konteksti.KAIKKI ( ) ,optiot.Client ( ) .ApplyURI ( tyyppi ) )
jos err ! = nolla {
fmt.Println ( 'Mongo.connect() virhe: ' , err )
os. Poistu ( yksi )
}
ctx, _ := konteksti.WithTimeout ( konteksti.Tausta ( ) , viisitoista * aika. Toinen )
c := asiakas.tietokanta ( 'Uusi' ) .Kokoelma ( 'Henkilö' )
fmt.Println ( 'Kokoelman tyyppi:' , heijastaa.TypeOf ( c ) , ' \n ' )
Rec := MongoField {
Nimi: 'EDEN' ,
Sähköposti: 'eden@gmail.com' ,
Ikä: Neljä viisi ,
Palkka: 50 000 }
fmt.Println ( 'Tietueen tyyppi:' , heijastaa.TypeOf ( Rec ) , ' \n ' )
tulos, insertErr := c.InsertOne ( ctx, Rec )
jos insertErr ! = nolla {
fmt.Println ( 'InsertOne Error:' , insertErr )
os. Poistu ( yksi )
} muu {
fmt.Println ( 'InsertOne tulostyyppi: ' , heijastaa.TypeOf ( tulos ) )
uusiID = tulos.InsertedID
fmt.Println ( 'Lisätty tietueen tunnus:' , uusi ID ) )
fmt.Println ( 'Onnistuneesti yhdistetty ja lisätty tietueet!' )
} }


Tallenna Golang-koodi ja avaa pääte Golang-kansiossa. Käytä nyt 'go'-käskyä 'run'-avainsanan kanssa suorittaaksesi 'main.go'-kooditiedoston. Virheenkorjaus onnistui ja kokoelma 'Person' on luotu onnistuneesti MongoDB:ssä. Tulos näyttää kokoelmatyypin, tietueen tyypin, tulostyypin ja tietueen 'ID:n'.

saeedraza @ virtualbox:~ / Golang$ Go Run Main.go
Kokoelman tyyppi: * mongo. Kokoelma
Tietueen tyyppi: main.MongoField
InsertOne-tulostyyppi: * mongo.InsertOneResult
Lisätty tietueen tunnus: ObjectID ( '63a8535ac97b4218230664b6' )
Onnistuneesti yhdistetty ja lisätty tietueet.


Avaa 'MongoDB'-kompassi päässäsi ja muodosta yhteys sen paikalliseen isäntään 'URI':n avulla.


'Uusi'-tietokannan sisällä siirtymisen jälkeen olemme saaneet 'Dokumentit'-osiossa näkyviin kokoelman 'Henkilö' lisäämämme tietueen kanssa.

Johtopäätös

Tämä opas havainnollistaa Go-kielen käyttöä tietueiden lisäämiseen MongoDB-asiakkaaseen käyttämällä Visual Studio Code -työkalua Linux-järjestelmässä. Tätä varten olemme asentaneet järjestelmään mongodb:n ja mongodb-ohjaimen 'golangille'. Golang-kielellä olemme luoneet 'go'-tiedoston MongoDB:hen ja keskustelleet Golangin erilaisista paketeista ja toiminnoista yhteyden luomiseksi MongoDB:hen ja tietueiden lisäämiseksi. Lopuksi olemme osoittaneet tulokset MongoDB-kompassilla, joka osoittaa, että voit yhdistää minkä tahansa Golang-työkalun MongoDB:hen.