Come connettere MongoDB con Golang

Come Connettere Mongodb Con Golang



Proprio come il linguaggio C, anche il linguaggio Golang è un linguaggio open source che può essere eseguito su molti strumenti su sistemi Windows e Linux/Unix per creare record. Come C++ e Java, possiamo stabilire una connessione tra un sistema client MongoDB e il linguaggio Go utilizzando qualsiasi strumento golang. Per fare ciò, eseguiremo diversi passaggi molto importanti e necessari in Ubuntu 22.04 utilizzando lo strumento di codice di Visual Studio per un programma. Prima di stabilire una connessione con la bussola MongoDB, tendiamo a installare MongoDB e Visual Studio Code insieme a 'go' e alle estensioni richieste nella guida per aiutarti nella lingua Go.

Installa MongoDB

Abbiamo scaricato il pacchetto “deb” del server MongoDB dal suo sito ufficiale. Il pacchetto 'Deb' può anche essere eseguito in Ubuntu utilizzando lo strumento di comando 'dpkg' sul Terminale.







Eseguito il file del server MongoDB sul terminale con diritti 'sudo' e fornito un passcode.



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


Se hai trovato il servizio MongoDB inattivo alla tua fine dopo aver provato l'istruzione 'systemctl' di Ubuntu per verificare lo stato, puoi anche aggiornarlo. Per attivare MongoDB, prova l'istruzione systemctl con le parole chiave 'start' e 'enable'.

saeedraza@virtualbox:~$ sudo systemctl avvia mongod
saeedraza@virtualbox:~$ sudo systemctl abilitare mongod
saeedraza@virtualbox:~$ sudo systemctl stato mongod

Avvia MongoDB

Dopo l'installazione, avvia rapidamente la shell MongoDb utilizzando la query 'mongo'. Passare al database 'admin' per eseguire i passaggi di procedura.

saeedraza@virtualbox:~$ mongo
MongoDB shell versione v5.0.14
connessione a: mongodb: // 127.0.0.1: 27017 / ? compressori = disabilitato & gssapiServiceName = mongodb
Sessione implicita: sessione { 'id' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
Versione del server MongoDB: 6.0.3


Stiamo creando un nuovo utente con diritti di amministratore utilizzando la funzione createUser().

> usa admin
passato a db admin
> db.createUser (
... {
... utente: 'Said' ,
... pwd: '12345' ,
... ruoli: [ { ruolo: 'userAdminAnyDatabase' , db: 'amministratore' } , 'readWriteAnyDatabase' ]

... } )
Utente aggiunto con successo: {
'utente' : 'Said' ,
'ruoli' : [
{
'ruolo' : 'userAdminAnyDatabase' ,
'db' : 'amministratore'
} ,
'readWriteAnyDatabase'
]
}


Autorizzato l'utente 'Saeed' utilizzando le credenziali nella funzione 'auth' e visualizzato i database attualmente di proprietà di MongoDB.

> db.auth ( 'Said' , '12345' )
uno
> mostra dbs
amministratore   0,000 GB
configurazione  0,000 GB
Locale 0,000 GB

Installa il driver MongoDB per Golang

Apri il terminale in Visual Studio Code e spostati all'interno della cartella “Golang” in cui hai voluto aggiungere i tuoi file di codice sorgente. Esegui l'istruzione 'go mod init' con il nome della cartella per creare un file 'go.mod'. Carica il driver MongoDB per la lingua Go tramite la query 'go get'.

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


In alcuni casi, è necessario caricare anche il driver MongoDB in formato bson per Golang.

saeedraza@virtualbox:~/Golang$ vai a prendere go.mongodb.org / mongo-driver / bson


Assicurati di aggiungere i pacchetti di estensione necessari come 'gopls' nel codice di Visual Studio utilizzando il pannello Estensioni senza utilizzare alcuna istruzione.


Insieme a 'gopls', il Golang potrebbe richiedere l'installazione dello strumento 'dlv'.

Esempio di codice in corso

E' stato avviato il file di codice “main.go” con l'importazione di alcuni pacchetti utili che verranno utilizzati in tutto il codice per la connessione. Qui sono state effettuate un totale di 7 importazioni. Dopo aver importato i pacchetti, abbiamo creato una nuova struttura denominata MongoField con 4 membri dati di tipo JSON al suo interno. 2 di questi membri dati sono stringhe e 2 sono numeri interi.

Successivamente, è stato dichiarato un tipo costante di variabile 'uri' con un indirizzo client oppure è necessario aggiungere il proprio indirizzo localhost in base al nome utente e alla password. Le funzioni main() iniziano con l'uso della funzione connect() di Golang per connettersi con MongoDB tramite un oggetto 'mongo'. La funzione ApplyURI() prenderà la variabile 'uri' come argomento da applicare alla funzione Client() in modo che sia possibile stabilire una connessione tramite un indirizzo host. Il pacchetto di contesto ha svolto il ruolo principale per chiamare la funzione TODO() per richiedere una connessione. Se la connessione è stata stabilita correttamente tra il codice di Visual Studio e il MongoDB, il segnale restituito dal client verrà aggiunto alla variabile 'client'; in caso contrario, l'errore verrà memorizzato nella variabile “err”.

L'istruzione 'if' è qui per visualizzare i messaggi di conseguenza. Se la variabile 'err' ha un valore diverso da 'nil', la funzione Println() dal pacchetto formato 'fmt' stamperà quell'errore sulla schermata di output, il terminale. Il pacchetto 'os' verrà utilizzato per uscire dal programma se si verifica l'errore. Il pacchetto di contesto viene utilizzato anche qui per gestire il timeout per la connessione da stabilire tramite questo programma. Per il particolare valore di timeout 'ctx', il nostro programma verrà eseguito. Una nuova raccolta 'Persona' insieme a un nuovo database 'Nuovo' verrà creato nel client MongoDB tramite Golang. Println() visualizzerà il tipo di una raccolta 'c' utilizzando la funzione 'TypeOf' dal pacchetto reflect.

Un record 'Rec' è stato creato utilizzando i membri dei dati della struttura MongoField che vengono inizializzati qui uno per uno. Il tipo di record è stato visualizzato e il record 'Rec' verrà inserito nel client MongoDB utilizzando la funzione insertOne con l'oggetto di raccolta 'c'. L'inserimento riuscito porta a una variabile 'result' che contiene il valore di successo mentre la variabile 'insertErr' conterrà il valore di errore. L'istruzione 'if' viene utilizzata nuovamente per controllare e visualizzare l'errore nell'inserimento di un record solo se la variabile 'insertErr' contiene un valore diverso da 'nil'. Altrimenti, la parte 'else' dell'istruzione conterrà alcune istruzioni Println() per visualizzare il tipo di record da inserire, l'ID del record e il messaggio di successo per la connessione e l'inserimento che ha avuto luogo. Il codice Golang è ora completo.

pacchetto principale
importare (
'contesto'
'fmt'
'voi'
'riflettere'
'tempo'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
genere Struttura MongoField {
Nome  stringa ` json: 'Campo Str' `
Email  stringa ` json: 'Campo Str' `
Età    int ` json: 'Campo Int' `
Stipendio int ` json: 'Campo Int' `
}
const uri = “mongodb: // Password utente @ host locale: 27017 / ? maxPoolSize = venti & in =maggioranza”
funzione principale ( ) {
client, err := mongo.Connect ( contesto.ALL ( ) ,opzioni.Client ( ) .ApplicaURI ( genere ) )
Se errare ! = nullo {
fmt.Println ( 'Errore Mongo.connect(): ' , errare )
os. Esci ( uno )
}
ctx, _ := contesto.WithTimeout ( contesto.Sfondo ( ) , quindici * tempo.Secondo )
c := client.Database ( 'Nuovo' ) .Collezione ( 'Persona' )
fmt.Println ( 'Tipo di raccolta: ' , riflette.TypeOf ( c ) , ' \n ' )
Rec := MongoField {
Nome: 'EDEN' ,
E-mail: 'eden@gmail.com' ,
Età: Quattro cinque ,
Stipendio: 50000 }
fmt.Println ( 'Tipo di registrazione: ' , riflette.TypeOf ( Rec ) , ' \n ' )
risultato, insertErr := c.InsertOne ( ctx, rec )
Se insertErr ! = nullo {
fmt.Println ( 'Errore InserisciUno: ' , inserisciErr )
os. Esci ( uno )
} altro {
fmt.Println ( 'InsertOne tipo di risultato: ' , riflette.TypeOf ( risultato ) )
newID = result.InsertID
fmt.Println ( 'ID record inserito: ' , nuovo ID ) )
fmt.Println ( 'Record collegati e inseriti correttamente!' )
} }


Salva il codice Golang e apri il terminale all'interno della cartella Golang. Ora, usa l'istruzione 'go' con la parola chiave 'run' per eseguire il file di codice 'main.go'. Il debug è andato a buon fine e la raccolta 'Person' è stata generata con successo in MongoDB. L'output mostra il tipo di raccolta, il tipo di record, il tipo di risultato e l''ID' di un record.

saedraza @ casella virtuale:~ / Golang$ Vai Esegui Main.go
Tipo di raccolta: * mongo.Collezione
Tipo di registrazione: main.MongoField
InsertOne tipo di risultato: * mongo.InsertOneResult
ID record inserito: ObjectID ( “63a8535ac97b4218230664b6” )
Record collegati e inseriti correttamente.


Apri la bussola 'MongoDB' alla tua estremità e connettiti con il suo host locale utilizzando 'URI'.


Dopo esserci spostati all'interno del database “Nuovo”, abbiamo la collezione “Persona” visualizzata nella sezione “Documenti” insieme al record che abbiamo aggiunto.

Conclusione

Questa guida illustra l'uso del linguaggio Go per aggiungere record nel client MongoDB usando uno strumento Visual Studio Code nel sistema Linux. Per questo, abbiamo installato mongodb insieme al driver mongodb per 'golang' nel sistema. Utilizzando un linguaggio Golang, abbiamo creato un file 'go' in MongoDB e discusso la varietà di pacchetti e funzioni di Golang per creare una connessione a MongoDB e inserire record. Alla fine, abbiamo dimostrato i risultati sulla bussola MongoDB che mostra che puoi connettere qualsiasi strumento Golang a MongoDB.