So verbinden Sie MongoDB mit Golang

So Verbinden Sie Mongodb Mit Golang



Genau wie die C-Sprache ist auch die Golang-Sprache eine Open-Source-Sprache, die auf vielen Tools auf Windows- und Linux/Unix-Systemen ausgeführt werden kann, um Datensätze zu erstellen. Wie C++ und Java können wir mit jedem Golang-Tool eine Verbindung zwischen einem MongoDB-Clientsystem und der Go-Sprache herstellen. Dazu werden wir mehrere sehr wichtige und notwendige Schritte in Ubuntu 22.04 ausführen, indem wir das Visual Studio-Code-Tool für ein Programm verwenden. Bevor wir eine Verbindung mit MongoDB Compass herstellen, installieren wir normalerweise MongoDB und Visual Studio Code zusammen mit „go“ und den erforderlichen Erweiterungen im Handbuch, um Ihnen in der Go-Sprache zu helfen.

Installieren Sie MongoDB

Wir haben das „deb“-Paket des MongoDB-Servers von seiner offiziellen Website heruntergeladen. Das Paket „Deb“ kann auch in Ubuntu mit dem Befehlstool „dpkg“ auf dem Terminal ausgeführt werden.







Die MongoDB-Serverdatei auf dem Terminal mit „sudo“-Rechten ausgeführt und einen Passcode bereitgestellt.



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


Wenn Sie feststellen, dass der MongoDB-Dienst an Ihrem Ende inaktiv ist, nachdem Sie die „systemctl“-Anweisung von Ubuntu ausprobiert haben, um den Status zu überprüfen, können Sie ihn ebenfalls aktualisieren. Um die MongoDB zu aktivieren, versuchen Sie die systemctl-Anweisung mit den Schlüsselwörtern „start“ und „enable“.

saeedraza@virtualbox:~$ sudo systemctl startet mongod
saeedraza@virtualbox:~$ sudo systemctl ermöglichen Mongott
saeedraza@virtualbox:~$ sudo Systemctl-Statusmongod

Starten Sie MongoDB

Starten Sie nach der Installation schnell die MongoDb-Shell mit der Abfrage „mongo“. Wechseln Sie zur „admin“-Datenbank, um die folgenden Schritte auszuführen.

saeedraza@virtualbox:~$ Mongo
MongoDB-Shell-Version v5.0.14
Verbindung zu: mongodb: // 127.0.0.1: 27017 / ? Kompressoren = deaktiviert & gssapiDienstname =mongodb
Implizite Sitzung: Sitzung { 'Ich würde' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
MongoDB-Serverversion: 6.0.3


Wir erstellen einen neuen Benutzer mit Administratorrechten mit der Funktion createUser().

> Administrator verwenden
auf db admin umgestellt
> db.createUser (
... {
... Benutzer: 'Said' ,
... pwd: '12345' ,
... Rollen: [ { Rolle: 'userAdminAnyDatabase' , dB: 'Administrator' } , 'readWriteAnyDatabase' ]

... } )
Benutzer erfolgreich hinzugefügt: {
'Benutzer' : 'Said' ,
'Rollen' : [
{
'Rolle' : 'userAdminAnyDatabase' ,
'db' : 'Administrator'
} ,
'readWriteAnyDatabase'
]
}


Autorisierte den Benutzer „Saeed“ mit Anmeldeinformationen in der „auth“-Funktion und zeigte die aktuell besessenen Datenbanken von MongoDB an.

> db.auth ( 'Saeed' , '12345' )
einer
> DB anzeigen
Administrator   0,000 GB
config 0,000 GB
lokal 0,000 GB

Installieren Sie den MongoDB-Treiber für Golang

Öffnen Sie das Terminal in Visual Studio Code und bewegen Sie sich innerhalb des Ordners „Golang“, in dem Sie Ihre Quellcodedateien hinzufügen wollten. Führen Sie die Anweisung „go mod init“ mit dem Ordnernamen aus, um eine „go.mod“-Datei zu erstellen. Laden Sie den MongoDB-Treiber für die Sprache Go über die Abfrage „go get“.

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


In einigen Fällen ist es erforderlich, den MongoDB-Treiber im bson-Format auch für Golang zu laden.

saeedraza@virtualbox:~/Golang$ Gehen Sie zu go.mongodb.org / Mongo-Fahrer / bson


Stellen Sie sicher, dass Sie die erforderlichen Erweiterungspakete wie „gopls“ im Visual Studio-Code über das Bedienfeld „Erweiterungen“ hinzufügen, ohne eine Anleitung zu verwenden.


Zusammen mit „gopls“ erfordert Golang möglicherweise die Installation des Tools „dlv“.

Gehendes Codebeispiel

Die Codedatei „main.go“ wurde mit dem Import einiger nützlicher Pakete gestartet, die im gesamten Code für die Verbindung verwendet werden. Insgesamt wurden hier 7 Importe getätigt. Nach dem Importieren der Pakete haben wir eine neue Struktur namens MongoField mit 4 Datenelementen vom Typ JSON darin erstellt. 2 dieser Datenelemente sind Zeichenfolgen und 2 davon sind ganze Zahlen.

Danach wurde ein konstanter Variablentyp „uri“ mit einer Client-Adresse deklariert oder Sie müssen Ihre localhost-Adresse entsprechend dem Benutzernamen und dem Passwort hinzufügen. Die main()-Funktionen beginnen mit der Verwendung der connect()-Funktion von Golang, um sich über ein „mongo“-Objekt mit MongoDB zu verbinden. Die ApplyURI()-Funktion nimmt die „uri“-Variable als Argument, um sie auf die Client()-Funktion anzuwenden, damit eine Verbindung über eine Hostadresse hergestellt werden kann. Das Kontextpaket spielt die Hauptrolle beim Aufrufen der TODO()-Funktion zum Anfordern einer Verbindung. Wenn die Verbindung zwischen dem Visual Studio-Code und der MongoDB erfolgreich hergestellt wurde, wird das vom Client zurückgegebene Signal zur „client“-Variable hinzugefügt; Andernfalls wird der Fehler in der Variablen „err“ gespeichert.

Die „if“-Anweisung dient dazu, die Meldungen entsprechend anzuzeigen. Wenn die „err“-Variable einen anderen Wert als „nil“ hat, druckt die Println()-Funktion aus dem Formatpaket „fmt“-Paket diesen Fehler auf dem Ausgabebildschirm, dem Terminal. Das Paket „os“ wird verwendet, um das Programm zu beenden, wenn der Fehler auftritt. Das Kontextpaket wird hier wiederum verwendet, um die Zeitüberschreitung für die durch dieses Programm herzustellende Verbindung zu verwalten. Für den bestimmten Timeout-Wert „ctx“ wird unser Programm ausgeführt. Eine neue Sammlung „Person“ wird zusammen mit einer neuen Datenbank „New“ im Client MongoDB über Golang erstellt. Println() zeigt den Typ einer Sammlung „c“ mithilfe der „TypeOf“-Funktion aus dem Reflect-Paket an.

Ein Datensatz „Rec“ wurde unter Verwendung der MongoField-Datenelemente der Struktur erstellt, die hier einzeln initialisiert werden. Der Datensatztyp wird angezeigt und der Datensatz „Rec“ wird mithilfe der insertOne-Funktion mit dem Sammlungsobjekt „c“ in den Client MongoDB eingefügt. Das erfolgreiche Einfügen führt zu einer „Ergebnis“-Variablen, die den Erfolgswert enthält, während die „insertErr“-Variable den Fehlerwert enthält. Die „if“-Anweisung wird erneut verwendet, um den Fehler beim Einfügen eines Datensatzes nur dann zu prüfen und anzuzeigen, wenn die „insertErr“-Variable einen anderen Wert als „nil“ enthält. Andernfalls enthält der „else“-Teil der Anweisung einige Println()-Anweisungen, um den Typ eines einzufügenden Datensatzes, die Datensatz-ID und die Erfolgsmeldung für die erfolgte Verbindung und Einfügung anzuzeigen. Der Golang-Code ist nun vollständig.

Paket Haupt
importieren (
'Kontext'
'fmt'
'Sie'
'reflektieren'
'Zeit'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
Art MongoField-Struktur {
Name   Zeichenfolge ` json: 'Feldstr' `
E-Mail-String ` json: 'Feldstr' `
Alter    int ` json: 'Feld Int' `
Gehalt int ` json: 'Feld Int' `
}
const uri = „mongodb: // Benutzer-Passwort @ lokaler Host: 27017 / ? maxPoolSize = zwanzig & in = Mehrheit“
func main ( ) {
Client, ähm := mongo.Connect ( Kontext.ALL ( ) ,Optionen.Kunde ( ) .URI anwenden ( Art ) )
wenn irren ! = null {
fmt.Println ( 'Mongo.connect()-Fehler: ' , irren )
os. Beenden ( einer )
}
ctx, _ := Kontext.WithTimeout ( Kontext.Hintergrund ( ) , fünfzehn * Zeit.Sekunde )
c := Client.Datenbank ( 'Neu' ) .Sammlung ( 'Person' )
fmt.Println ( 'Sammlungstyp: ' , reflektieren.TypeOf ( c ) , ' \n ' )
Rec := MongoField {
Name: 'EDEN' ,
Email: 'eden@googlemail.com' ,
Das Alter: Vier fünf ,
Gehalt: 50000 }
fmt.Println ( 'Aufnahmetyp: ' , reflektieren.TypeOf ( Rec ) , ' \n ' )
Ergebnis, insertErr := c.InsertOne ( ctx, Rec )
wenn Einfügefehler ! = null {
fmt.Println ( 'InsertOne-Fehler: ' , EinfügeErr )
os. Beenden ( einer )
} anders {
fmt.Println ( 'Eins einfügen Ergebnistyp: ' , reflektieren.TypeOf ( Ergebnis ) )
neueID = result.InsertedID
fmt.Println ( 'Eingefügte Datensatz-ID: ' , neue ID ) )
fmt.Println ( 'Erfolgreich verbundene und eingefügte Datensätze!' )
} }


Speichern Sie den Golang-Code und öffnen Sie das Terminal im Golang-Ordner. Verwenden Sie nun die Anweisung „go“ mit dem Schlüsselwort „run“, um die Codedatei „main.go“ auszuführen. Das Debugging war erfolgreich und die Collection „Person“ wurde erfolgreich in der MongoDB generiert. Die Ausgabe zeigt den Sammlungstyp, Datensatztyp, Ergebnistyp und die „ID“ eines Datensatzes.

saedraza @ virtualbox:~ / Golang$ Go Führen Sie Main.go aus
Sammlungstyp: * mongo.Sammlung
Datensatztyp: main.MongoField
Ergebnistyp InsertOne: * mongo.InsertOneResult
Eingefügte Datensatz-ID: ObjectID ( „63a8535ac97b4218230664b6“ )
Erfolgreich verbundene und eingefügte Datensätze.


Öffnen Sie den „MongoDB“-Kompass an Ihrem Ende und verbinden Sie sich mit seinem lokalen Host über die „URI“.


Nachdem wir uns innerhalb der Datenbank „Neu“ bewegt haben, wird die Sammlung „Person“ im Abschnitt „Dokumente“ zusammen mit dem von uns hinzugefügten Datensatz angezeigt.

Fazit

Dieses Handbuch veranschaulicht die Verwendung der Go-Sprache zum Hinzufügen von Datensätzen im MongoDB-Client mithilfe eines Visual Studio Code-Tools im Linux-System. Dazu haben wir die Mongodb zusammen mit dem Mongodb-Treiber für „golang“ im System installiert. Unter Verwendung einer Golang-Sprache haben wir eine „go“-Datei in MongoDB erstellt und die Vielfalt der Pakete und Funktionen von Golang besprochen, um eine Verbindung zu MongoDB herzustellen und Datensätze einzufügen. Am Ende haben wir die Ergebnisse auf dem MongoDB-Kompass demonstriert, die zeigen, dass Sie jedes Golang-Tool mit MongoDB verbinden können.