Kuidas ühendada MongoDB Golangiga

Kuidas Uhendada Mongodb Golangiga



Nii nagu C-keel, on ka Golangi keel avatud lähtekoodiga keel, mida saab kirjete loomiseks käivitada paljudes Windowsi ja Linuxi/Unixi süsteemide tööriistades. Sarnaselt C++ ja Javaga saame luua ühenduse MongoDB kliendisüsteemi ja Go keele vahel, kasutades mis tahes golangi tööriista. Selleks teeme Ubuntu 22.04-s mitu väga olulist ja vajalikku sammu, kasutades programmi jaoks Visual Studio kooditööriista. Enne MongoDB kompassiga ühenduse loomist kipume installima MongoDB ja Visual Studio Code koos juhendi 'go' ja vajalike laiendustega, et aidata teil Go keeles.

Installige MongoDB

Oleme MongoDB serveri paketi 'deb' alla laadinud selle ametlikult veebisaidilt. Paketti 'Deb' saab käivitada ka Ubuntus, kasutades terminali käsutööriista 'dpkg'.







Käivitas MongoDB serverifaili terminalis 'sudo' õigustega ja andis pääsukoodi.



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


Kui pärast Ubuntu käsu „systemctl” proovimist oleku kontrollimiseks leidsite MongoDB teenuse enda jaoks passiivseks, saate seda ka värskendada. MongoDB aktiveerimiseks proovige systemctl-i juhiseid märksõnadega 'start' ja 'enable'.

saeedraza@virtualbox:~$ sudo systemctl start mongod
saeedraza@virtualbox:~$ sudo systemctl lubada mongod
saeedraza@virtualbox:~$ sudo systemctl staatus mongod

Käivitage MongoDB

Pärast installimist käivitage MongoDb kest kiiresti päringu 'mongo' abil. Toimivate toimingute tegemiseks lülituge andmebaasi 'administraator'.

saeedraza@virtualbox:~$ mongo
MongoDB kesta versioon v5.0.14
ühendumine: mongodb: // 127.0.0.1: 27017 / ? kompressorid = puudega & gssapiServiceName =mongodb
Kaudne seanss: seanss { 'id' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
MongoDB serveri versioon: 6.0.3


Loome uue administraatoriõigustega kasutaja funktsiooni createUser() abil.

> kasuta admin
lülitati üle db admin
> db.createUser (
... {
... kasutaja: 'Saeed' ,
... pwd: '12345' ,
... rollid: [ { roll: 'userAdminAnyDatabase' , db: 'admin' } , 'readWriteAnyDatabase' ]

... } )
Kasutaja edukalt lisatud: {
'kasutaja' : 'Saeed' ,
'rollid' : [
{
'roll' : 'userAdminAnyDatabase' ,
'db' : 'admin'
} ,
'readWriteAnyDatabase'
]
}


Autoriseeris kasutaja 'Saeed', kasutades 'auth' funktsioonis mandaate, ja kuvas MongoDB praegu omavad andmebaasid.

> db.auth ( 'Saeed' , '12345' )
üks
> näita dbs
administraator   0,000 GB
konfiguratsioon 0,000 GB
kohalik 0,000 GB

Installige MongoDB draiver Golangi jaoks

Avage terminal Visual Studio Code'is ja liikuge kausta 'Golang', kuhu soovite lähtekoodifailid lisada. Käivitage käsk 'go mod init' koos kausta nimega, et luua fail 'go.mod'. Laadige MongoDB draiver Go keele jaoks päringu 'go get' kaudu.

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


Mõnel juhul tuleb Golangi jaoks laadida ka bson-vormingus MongoDB draiver.

saeedraza@virtualbox:~/Golang$ mine võta go.mongodb.org / mongo-autojuht / bson


Lisage laienduste paneeli abil Visual Studio koodi vajalikud laienduspaketid, nagu 'gopls', ilma juhiseid kasutamata.


Koos goplidega võib Golang nõuda kindlasti ka dlv-tööriista installimist.

Going Code näide

Koodifail “main.go” on käivitatud mõnede kasulike pakettide importimisega, mida kasutatakse ühenduse loomiseks kogu koodis. Siia on imporditud kokku 7 korda. Pärast pakettide importimist lõime uue struktuuri nimega MongoField, milles on 4 JSON-tüüpi andmeliiget. 2 neist andmeliikmetest on stringid ja 2 neist on täisarvud.

Pärast seda on kliendi aadressiga deklareeritud konstantset tüüpi muutuja “uri” või siis tuleb lisada oma localhosti aadress vastavalt kasutajanimele ja paroolile. Main() funktsioonid algavad Golangi funktsiooni connect() kasutamisega MongoDB-ga ühenduse loomiseks 'mongo' objekti kaudu. Funktsioon ApplyURI() võtab oma argumendiks muutuja 'uri', mida rakendada funktsioonile Client(), et saaks luua ühenduse hostiaadressi kaudu. Kontekstipakett on mänginud peamist rolli ühenduse taotlemiseks funktsiooni TODO() kutsumisel. Kui Visual Studio koodi ja MongoDB vaheline ühendus loodi edukalt, lisatakse kliendi poolt tagastatud signaal muutujasse 'klient'; vastasel juhul salvestatakse viga muutujasse 'err'.

Kui-lause on siin selleks, et kuvada sõnumeid vastavalt. Kui muutuja 'err' sai muu väärtuse kui 'null', prindib vormingupaketi 'fmt' funktsioon Println() selle vea väljundekraanile, terminalile. Vea ilmnemisel kasutatakse programmist väljumiseks paketti 'os'. Siin kasutatakse taas kontekstipaketti, et hallata selle programmi kaudu ühenduse loomise ajalõpu. Konkreetse ajalõpu väärtuse 'ctx' korral meie programm käivitub. Kliendis MongoDB luuakse Golangi kaudu uus kollektsioon “Person” koos uue andmebaasiga “Uus”. Println() kuvab kogu tüüpi 'c', kasutades peegeldamispaketi funktsiooni 'TypeOf'.

Kirje “Rec” loodi struktuuriga MongoField andmeliikmed, mis initsialiseeritakse siin ükshaaval. Kuvati kirje tüüp ja kirje “Rec” lisatakse klient MongoDB-sse, kasutades funktsiooni insertOne koos koguobjektiga “c”. Edukas sisestamine viib muutujani 'tulemus', mis hoiab edu väärtust, samas kui muutuja 'insertErr' hoiab ebaõnnestumise väärtust. Lauset 'if' kasutatakse uuesti kirje sisestamise tõrke kontrollimiseks ja kuvamiseks ainult siis, kui muutuja 'insertErr' ei sisalda väärtust 'null'. Vastasel juhul sisaldab avalduse osa 'muu' mõningaid Println() lauseid, et kuvada sisestatava kirje tüüp, kirje ID ning ühenduse ja toimunud sisestamise õnnestumisteade. Golangi kood on nüüd valmis.

pakett peamine
importida (
'kontekst'
'fmt'
'sina'
'peegeldama'
'aeg'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
tüüp MongoField struktuur {
Name   string ` json: 'Field Str' `
E-posti string ` json: 'Field Str' `
Vanus    int ` json: 'Field Int' `
Palk int ` json: 'Field Int' `
}
const uri = 'mongodb: // Kasutaja: Parool @ localhost: 27017 / ? maxPoolSize = kakskümmend & sisse =enamus”
func main ( ) {
klient, err := mongo.Connect ( kontekst.KÕIK ( ) ,valikud.Klient ( ) .ApplyURI ( tüüp ) )
kui eks ! = null {
fmt.Println ( 'Mongo.connect() viga: ' , eks )
os. Välju ( üks )
}
ctx, _ := kontekst.WithTimeout ( kontekst.Taust ( ) , viisteist * aeg.Teiseks )
c := klient.Andmebaas ( 'Uus' ) .Kogu ( 'Isik' )
fmt.Println ( 'Kogu tüüp:' , peegeldavad.TypeOf ( c ) , ' \n ' )
Rec := MongoField {
Nimi: 'EDEN' ,
E-post: 'eden@gmail.com' ,
Vanus: Neli, viis ,
Palk: 50 000 }
fmt.Println ( 'Kirje tüüp:' , peegeldavad.TypeOf ( Rec ) , ' \n ' )
tulemus, insertErr := c.InsertOne ( ctx, Rec )
kui insertErr ! = null {
fmt.Println ( 'InsertOne Error:' , insertErr )
os. Välju ( üks )
} muidu {
fmt.Println ( 'InsertOne tulemuse tüüp:' , peegeldavad.TypeOf ( tulemus ) )
newID = result.InsertedID
fmt.Println ( 'Sisestatud kirje ID:' , uus ID ) )
fmt.Println ( 'Edukalt ühendatud ja kirjed sisestatud!' )
} }


Salvestage Golangi kood ja avage terminal Golangi kaustas. Nüüd kasutage koodifaili main.go käivitamiseks käsku 'go' koos märksõnaga 'run'. Silumine õnnestus ja MongoDB-s genereeriti edukalt kogu “Person”. Väljund näitab kogu tüüpi, kirje tüüpi, tulemuse tüüpi ja kirje ID-d.

saeedraza @ virtuaalkast: ~ / Golang$ Go Run Main.go
Kollektsiooni tüüp: * mongo.Kogu
Kirje tüüp: main.MongoField
InsertOne tulemuse tüüp: * mongo.InsertOneResult
Sisestatud kirje ID: ObjectID ( '63a8535ac97b4218230664b6' )
Kirjed on edukalt ühendatud ja sisestatud.


Avage oma otsas 'MongoDB' kompass ja looge URI abil ühendus selle kohaliku hostiga.


Pärast „Uus“ andmebaasis liikumist oleme jaotises „Dokumendid“ kuvanud kollektsiooni „Isik“ koos meie poolt lisatud kirjega.

Järeldus

See juhend illustreerib keele Go kasutamist kirjete lisamiseks MongoDB kliendis, kasutades Linuxi süsteemi Visual Studio Code tööriista. Selleks oleme süsteemi installinud mongodb koos mongodb draiveriga golangi jaoks. Golangi keelt kasutades oleme loonud MongoDB-s 'go'-faili ja arutanud Golangi pakette ja funktsioone, et luua ühendus MongoDB-ga ja sisestada kirjeid. Lõpuks oleme näidanud tulemusi MongoDB kompassil, mis näitab, et saate MongoDB-ga ühendada mis tahes Golangi tööriista.