Sådan forbinder du MongoDB med Golang

Sadan Forbinder Du Mongodb Med Golang



Ligesom C-sproget er Golang-sproget også et open source-sprog, der kan udføres på mange værktøjer på Windows og Linux/Unix-systemer for at oprette poster. Ligesom C++ og Java kan vi oprette en forbindelse mellem et MongoDB-klientsystem og Go-sprog ved hjælp af ethvert golang-værktøj. For at gøre dette vil vi udføre flere meget vigtige og nødvendige trin i Ubuntu 22.04 ved at bruge Visual Studio-kodeværktøjet til et program. Før vi opretter en forbindelse med MongoDB-kompas, har vi en tendens til at installere MongoDB og Visual Studio Code sammen med 'go' og nødvendige udvidelser i guiden for at hjælpe dig på Go-sproget.

Installer MongoDB

Vi har downloadet 'deb'-pakken til MongoDB-serveren fra dens officielle hjemmeside. Pakken 'Deb' kan også udføres i Ubuntu ved hjælp af kommandoværktøjet 'dpkg' på terminalen.







Udførte MongoDB-serverfilen på terminalen med 'sudo'-rettigheder og angav en adgangskode.



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


Hvis du fandt MongoDB-tjenesten inaktiv i din ende efter at have prøvet 'systemctl'-instruktionen fra Ubuntu for at kontrollere status, kan du også opdatere den. For at aktivere MongoDB, prøv systemctl-instruktionen med nøgleordene 'start' og 'aktiver'.

saeedraza@virtualbox:~$ sudo systemctl start mongod
saeedraza@virtualbox:~$ sudo systemctl aktivere mongod
saeedraza@virtualbox:~$ sudo systemctl status mongod

Start MongoDB

Efter installationen skal du hurtigt starte MongoDb-skallen ved hjælp af 'mongo'-forespørgslen. Skift til 'admin'-databasen for at udføre de videre trin.

saeedraza@virtualbox:~$ mongo
MongoDB shell version v5.0.14
forbinder til: mongodb: // 127.0.0.1: 27017 / ? kompressorer =deaktiveret & gssapiServiceName =mongodb
Implicit session: session { 'id' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
MongoDB-serverversion: 6.0.3


Vi opretter en ny bruger med administratorrettigheder ved hjælp af createUser()-funktionen.

> brug admin
skiftet til db admin
> db.createUser (
... {
... bruger: 'Saeed' ,
... pwd: '12345' ,
... roller: [ { rolle: 'userAdminAnyDatabase' , db: 'admin' } , 'readWriteAnyDatabase' ]

... } )
Tilføjet bruger: {
'bruger' : 'Saeed' ,
'roller' : [
{
'rolle' : 'userAdminAnyDatabase' ,
'db' : 'admin'
} ,
'readWriteAnyDatabase'
]
}


Godkendte brugeren 'Saeed' ved hjælp af legitimationsoplysninger i 'auth'-funktionen og viste de aktuelt ejede databaser af MongoDB.

> db.auth ( 'Saeed' , '12345' )
en
> vis dbs
admin   0.000 GB
config  0.000 GB
lokal 0.000 GB

Installer MongoDB-driver til Golang

Åbn terminalen i Visual Studio Code og flyt i mappen 'Golang', hvor du vil tilføje dine kildekodefiler. Kør 'go mod init' instruktionen med mappenavnet for at oprette en 'go.mod' fil. Indlæs MongoDB-driveren til Go-sproget via 'go get'-forespørgslen.

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


I nogle tilfælde er det påkrævet at indlæse bson-formatet MongoDB-driveren til Golang også.

saeedraza@virtualbox:~/Golang$ gå hen på go.mongodb.org / mongo-driver / bson


Sørg for at tilføje de nødvendige udvidelsespakker som 'gopls' i Visual Studio-koden ved hjælp af udvidelsespanelet uden at bruge nogen instruktion.


Sammen med 'gopls' kan Golang kræve, at 'dlv'-værktøjet med sikkerhed er installeret.

Going Code Eksempel

Kodefilen 'main.go' er startet med import af nogle nyttige pakker, der vil blive brugt i hele koden til forbindelse. Her er i alt foretaget 7 importer. Efter at have importeret pakkerne oprettede vi en ny struktur ved navn MongoField med 4 datamedlemmer af JSON-typen. 2 af disse datamedlemmer er strenge, og 2 af dem er heltal.

Herefter er en konstant type variabel 'uri' blevet erklæret med en klientadresse, eller du skal tilføje din localhost-adresse i den i henhold til brugernavn og adgangskode. Hoved()-funktionerne starter med brugen af ​​connect()-funktionen i Golang til at forbinde med MongoDB gennem et 'mongo'-objekt. ApplyURI()-funktionen vil tage 'uri'-variablen som sit argument for at anvende på Client()-funktionen, så en forbindelse kan etableres via en værtsadresse. Kontekstpakken har spillet hovedrollen i at kalde TODO()-funktionen for at anmode om en forbindelse. Hvis forbindelsen blev etableret mellem Visual Studio-koden og MongoDB med succes, vil det klient-returnerede signal blive tilføjet til 'klient'-variablen; ellers vil fejlen blive gemt i variablen 'err'.

'Hvis'-erklæringen er her for at vise meddelelserne i overensstemmelse hermed. Hvis 'err'-variablen har en anden værdi end 'nil', vil Println()-funktionen fra formatpakken 'fmt'-pakken udskrive denne fejl på outputskærmen, terminalen. 'os'-pakken vil blive brugt til at afslutte programmet, hvis fejlen opstår. Kontekstpakken bruges igen her til at styre timeout for forbindelsen, der skal etableres gennem dette program. For den særlige timeout-værdi 'ctx', vil vores program køre. En ny samling 'Person' sammen med en ny database 'Ny' vil blive oprettet i klienten MongoDB gennem Golang. Println() vil vise typen af ​​en samling 'c' ved hjælp af funktionen 'TypeOf' fra refleksionspakken.

En post 'Rec' blev oprettet ved hjælp af strukturen MongoField-datamedlemmer, som initialiseres her én efter én. Posttypen blev vist, og posten 'Rec' vil blive indsat i klient MongoDB ved hjælp af insertOne-funktionen med samlingsobjektet 'c'. Den vellykkede indsættelse fører til en 'resultat'-variabel, der holder succesværdien, mens 'insertErr'-variablen vil holde fejlværdien. 'if'-sætningen bruges kun igen til at kontrollere og vise fejlen ved indsættelse af en post, hvis 'insertErr'-variablen har andet end 'nil'-værdien. Ellers vil 'else'-delen af ​​sætningen indeholde nogle Println()-sætninger for at vise typen af ​​en post, der skal indsættes, post-id'et og succesmeddelelsen for forbindelsen og indsættelsen, der har fundet sted. Golang-koden er nu færdig.

hovedpakke
importere (
'sammenhæng'
'fmt'
'du'
'afspejle'
'tid'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
type MongoField struktur {
Navn  -streng ` json: 'Field Str' `
E-mail-streng ` json: 'Field Str' `
Alder    int ` json: 'Field Int' `
Løn int ` json: 'Field Int' `
}
const uri = 'mongodb: // Bruger: Adgangskode @ lokal vært: 27017 / ? maxPoolSize = tyve & i =flertal”
func hoved ( ) {
klient, fejl := mongo.Forbind ( kontekst.ALLE ( ) ,indstillinger.Klient ( ) .AnvendURI ( type ) )
hvis fejl ! = nul {
fmt.Println ( 'Mongo.connect() fejl: ' , fejl )
os. Afslut ( en )
}
ctx, _ := kontekst.WithTimeout ( kontekst.Baggrund ( ) , femten * tid. Anden )
c := klient.Database ( 'Ny' ) .Kollektion ( 'Person' )
fmt.Println ( 'Samlingstype: ' , reflektere.TypeOf ( c ) , ' \n ' )
Rec := MongoField {
Navn: 'EDEN' ,
E-mail: 'eden@gmail.com' ,
Alder: Fire, fem ,
Løn: 50.000 }
fmt.Println ( 'Record Type: ' , reflektere.TypeOf ( Rec ) , ' \n ' )
resultat, insertErr := c.InsertOne ( ctx, Rec )
hvis indsætErr ! = nul {
fmt.Println ( 'InsertOne Error: ' , indsætErr )
os. Afslut ( en )
} andet {
fmt.Println ( 'InsertOne resultat type: ' , reflektere.TypeOf ( resultat ) )
newID = result.InsertedID
fmt.Println ( 'Indsat registrerings-id: ' , nyt ID ) )
fmt.Println ( 'Succesfuldt forbundet og indsat poster!' )
} }


Gem Golang-koden, og åbn terminalen i Golang-mappen. Brug nu 'go' instruktionen med 'run' nøgleordet til at udføre 'main.go' kodefilen. Fejlretningen var vellykket, og samlingen 'Person' er blevet genereret i MongoDB. Outputtet viser indsamlingstype, posttype, resultattype og 'ID' for en post.

saeedraza @ virtualbox:~ / Golang$ Go Run Main.go
Samlingstype: * mongo.Samling
Record Type: main.MongoField
InsertOne resultattype: * mongo.InsertOneResult
Indsat Record ID: ObjectID ( '63a8535ac97b4218230664b6' )
Tilsluttede og indsatte poster med succes.


Åbn 'MongoDB' kompasset i din ende, og forbind med dens lokale vært ved hjælp af 'URI'.


Efter at have flyttet ind i 'Ny' databasen, har vi fået samlingen 'Person' vist i 'Dokumenter' sektionen sammen med den post, vi har tilføjet.

Konklusion

Denne vejledning illustrerer brugen af ​​Go-sproget til at tilføje poster i MongoDB-klienten ved hjælp af et Visual Studio Code-værktøj i Linux-systemet. Til dette har vi installeret mongodb sammen med mongodb-driveren til 'golang' i systemet. Ved at bruge et Golang-sprog har vi oprettet en 'go'-fil i MongoDB og diskuteret de mange forskellige pakker og funktioner i Golang for at skabe en forbindelse til MongoDB og indsætte poster. Til sidst har vi demonstreret resultaterne på MongoDB-kompasset, som viser, at du kan forbinde ethvert Golang-værktøj til MongoDB.