Hvordan du kobler mongoDB med Golang

Hvordan du kobler mongoDB med Golang

Akkurat som C-språket er Golang-språket også et åpen kildekode som kan utføres på mange verktøy på Windows og Linux/UNIX-systemer for å lage poster. Som C ++ og Java, kan vi knytte en forbindelse mellom et MongoDB -klientsystem og gå språk ved hjelp av et hvilket som helst Golang -verktøy. For å gjøre dette, vil vi utføre flere veldig viktige og nødvendige skritt i Ubuntu 22.04 ved å bruke Visual Studio Code Tool for et program. Før vi har en forbindelse med MongoDB Compass, har vi en tendens til å installere MongoDB og Visual Studio Code sammen med "Go" og påkrevde utvidelser i guiden for å hjelpe deg på GO -språket.

Installer mongoDB

Vi har lastet ned "Deb" -pakken til MongoDB -serveren fra det offisielle nettstedet. "Deb" -pakken kan også utføres i Ubuntu ved å bruke kommandoverktøyet "DPKG" på terminalen.

Utførte MongoDB -serverfilen på terminalen med "sudo" -rettigheter og ga en passordkode.

Saeedraza@VirtualBox: ~ $ sudo dpkg -i mongodb-org-server_6.0.3_amd64.Deb


Hvis du fant MongoDB -tjenesten inaktive på slutten etter å ha prøvd “SystemCTL” -instruksjonen til Ubuntu for å sjekke for statusen, kan du også oppdatere den. For å aktivere MongoDB, prøv SystemCTL -instruksjonen med "Start" og "Aktiver" nøkkelord.

Saeedraza@VirtualBox: ~ $ sudo SystemCTL Start Mongod
Saeedraza@VirtualBox: ~ $ sudo SystemCTL Enable Mongod
Saeedraza@VirtualBox: ~ $ sudo SystemCTL Status Mongod

Start Mongodb

Etter installasjonen, lanser du raskt MongoDB -skallet ved hjelp av "Mongo" -spørsmålet. Bytt til "admin" -databasen for å utføre prosedyren.

Saeedraza@VirtualBox: ~ $ Mongo
MongoDB Shell -versjon V5.0.14
Koble til: MongoDB: // 127.0.0.1: 27017/?kompressorer = funksjonshemmede & gssapiservicename = mongoDB
Implisitt økt: økt "id": uuid ("34cc8e0f-b6b0-4191-ADEA-676411F66CF5")
MongoDB -serverversjon: 6.0.3


Vi oppretter en ny bruker med administratorrettigheter ved å bruke CreateUser () -funksjonen.

> Bruk admin
byttet til DB -administrator
> DB.Opprett bruker(
...
... Bruker: "Saeed",
... PWD: "12345",
… Roller: [Roll: "UserAdminanyDatabase", DB: "Admin", "ReadWriteanyDatabase"]
…)
Vellykket lagt til bruker:
"Bruker": "Saeed",
"roller" : [

"Roll": "UserAdminanyDatabase",
"DB": "Admin"
,
"ReadWriteanyDatabase"
]


Autorisert brukeren "SAEED" ved å bruke legitimasjon i "Auth" -funksjonen og viste de for øyeblikket eide databasene til MongoDB.

> DB.Auth ('Saeed', '12345')
1
> Vis DBS
admin 0.000 GB
konfigurasjon 0.000 GB
Lokal 0.000 GB

Installer MongoDB -driveren for Golang

Åpne terminalen i Visual Studio -koden og flytt i mappen “Golang” der du ønsket å legge til kildekodefilene dine. Kjør “Go Mod Init” -instruksjonen med mappenavnet for å opprette en “Go.mod ”-fil. Last inn MongoDB -driveren for GO -språket via "Go Get" -spørsmålet.

Saeedraza@VirtualBox: ~/golang $ go mod init golang


I noen tilfeller er det påkrevd å laste BSON -formatet MongoDB -driveren også for Golang.

Saeedraza@VirtualBox: ~/Golang $ GO GO GO.Mongodb.org/mongo-driver/bson


Sørg for å legge til de nødvendige forlengelsespakkene som “GoPLS” i Visual Studio Code ved hjelp av utvidelsespanelet uten å bruke noen instruksjon.


Sammen med "GoPLS" kan Golang kreve at "DLV" -verktøyet skal installeres helt sikkert.

Golang -kodeeksempel

Kodefilen “Hoved.Go ”er startet med import av noen nyttige pakker som skal brukes i hele koden for tilkobling. Helt 7 importer er gjort her. Etter å ha importert pakkene, opprettet vi en ny struktur som heter Mongofield med 4 JSON -type datamedlemmer i den. 2 av disse datamedlemmene er strenger, og 2 av dem er heltall.

Etter dette er en konstant type variabel "URI" blitt erklært med en klientadresse, eller du må legge til din localhost -adresse i den i henhold til brukernavnet og passordet. Hovedfunksjonene () starter med bruk av Connect () -funksjonen til Golang for å koble seg til MongoDB gjennom et "Mongo" -objekt. ApplyUri () -funksjonen vil ta "URI" -variabelen som argument for å gjelde på klient () -funksjonen slik at en tilkobling kan etableres gjennom en vertsadresse. Kontekstpakken har spilt hovedrollen for å ringe TODO () -funksjonen for å be om en tilkobling. Hvis tilkoblingen ble etablert mellom Visual Studio-koden og MongoDB med hell, vil det klient-returnerte signalet bli lagt til "klient" -variabelen; Ellers blir feilen lagret i variabelen "feil".

"Hvis" -uttalelsen er her for å vise meldingene deretter. Hvis "Err" -variabelen fikk en annen verdi enn "null", vil println () -funksjonen fra formatpakken "FMT" -pakke skrive ut den feilen på utgangsskjermen, terminalen. "OS" -pakken vil bli brukt til å avslutte programmet hvis feilen oppstår. Kontekstpakken brukes igjen her for å administrere tidsavbrudd for tilkoblingen som skal etableres gjennom dette programmet. For den spesielle tidsavbruddsverdien “CTX”, vil programmet vårt utføre. En ny samling “person” sammen med en ny database “New” vil bli opprettet i klienten MongoDB gjennom Golang. Println () vil vise typen av en samling “C” ved hjelp av “Typeof” -funksjonen fra Reflect -pakken.

En post “rec” ble opprettet ved hjelp av strukturen Mongofield -datamedlemmer som er initialisert her en etter en. Registreringstypen ble vist, og posten “REC” vil bli satt inn i klient MongoDB ved å bruke insertone -funksjonen med samlingsobjektet “C”. Den vellykkede innsatsen fører til en "resultat" -variabel som holder suksessverdien mens "InSerterr" -variabelen vil holde feilverdien. "IF" -uttalelsen brukes igjen for å sjekke og vise feilen ved å sette inn en post bare hvis "insertterr" -variabelen har annet enn "null" -verdien. Ellers vil den "ellers" delen av uttalelsen holde noen PRINTLN () uttalelser for å vise typen av en post som skal settes inn, post -IDen og suksessmeldingen for tilkoblingen og innsettingen som har funnet sted. Golang -koden er nå fullført.

pakkehoved
import (
"kontekst"
"FMT"
"OS"
"reflektere"
"tid"
"gå.Mongodb.org/mongo-driver/mongo "
"gå.Mongodb.org/mongo-driver/mongo/opsjoner "
)
skriv mongofield struct
Navnstreng 'Json: "Field Str"'
E -poststreng 'JSON: "Field Str"'
Age Int 'Json: "Field Int' '
Lønn int 'json: "Field int"'

const uri = “mongodb: // bruker: passord@localhost: 27017/?MaxPoolSize = 20 & w = flertall ”
func main ()
Klient, feil: = mongo.Koble til (kontekst.Todo (), alternativer.Klient().Applyuri (URI))
Hvis feil != nil
fmt.Println ("Mongo.Connect () Feil: ", feil)
OS.Avslutt (1)

CTX, _: = kontekst.Med tid (kontekst.Bakgrunn (), 15*tid.Sekund)
C: = klient.Database ("Ny").Samling ("person")
fmt.Println ("Collection Type:", Reflect.Typeof (c), "\ n")
Rec: = MongOfield
Navn: "Eden",
E -post: "[email protected] ",
Alder: 45,
Lønn: 50000
fmt.Println ("Record Type:", Reflect.Typeof (rec), "\ n")
Resultat, innsats: = C.INSERTONE (CTX, REC)
Hvis innsats != nil
fmt.Println ("Insertone Error:", inserterr)
OS.Avslutt (1)
annet
fmt.Println ("Insertone Resultat Type:", Reflekter.Typeof (resultat))
newId = resultat.Innsatt
fmt.Println ("Sett inn post -id:", newid))
fmt.Println ("med hell tilkoblet og satte inn poster!")


Lagre Golang -koden og åpne terminalen i Golang -mappen. Bruk nå "GO" -instruksjonen med "Kjør" nøkkelord for å utføre "Main.gå ”kodefil. Feilsøkingen var vellykket, og samlingen "personen" er blitt generert i MongoDB. Utgangen viser innsamlingstypen, posttypen, resultattypen og "ID" for en post.

Saeedraza@VirtualBox: ~/Golang $ go run main.gå
Samlingstype: *Mongo.Samling
Registreringstype: Hoved.Mongofield
Insertone resultattype: *Mongo.INSERTONERESULT
Sett inn post -ID: ObjectID (“63A8535AC97B4218230664B6”)
Vellykket tilkoblet og satte inn poster.


Åpne “MongoDB” -kompasset på slutten og kontakt med den lokale verten ved å bruke “URI”.


Etter å ha flyttet innenfor den "nye" databasen, har vi fått samlingen "person" som vises i delen "Dokumenter" sammen med posten som vi har lagt til.

Konklusjon

Denne guiden illustrerer bruken av GO -språk for å legge til poster i MongoDB -klienten ved hjelp av et Visual Studio -kodeverktøy i Linux -systemet. For dette har vi installert MongoDB sammen med MongoDB -driveren for “Golang” i systemet. Ved hjelp av et Golang -språk har vi laget en "Go" -fil i MongoDB og diskutert mangfoldet av pakker og funksjoner til Golang for å lage en forbindelse til MongoDB og sette inn poster. Til slutt har vi demonstrert resultatene på MongoDB -kompasset som viser at du kan koble til et hvilket som helst Golang -verktøy til MongoDB.