Heim > Backend-Entwicklung > Golang > Wie kann ich mit Golang-Treibern und der neuen URL-Syntax erfolgreich eine Verbindung zu MongoDB Atlas herstellen?

Wie kann ich mit Golang-Treibern und der neuen URL-Syntax erfolgreich eine Verbindung zu MongoDB Atlas herstellen?

Mary-Kate Olsen
Freigeben: 2024-12-26 19:28:14
Original
880 Leute haben es durchsucht

How to Successfully Connect to MongoDB Atlas using Golang Drivers with the New URL Syntax?

Verwendung von Golang-Treibern zur Verbindung mit MongoDB Atlas mit neuer URL-Syntax

Beim Herstellen einer Verbindung mit MongoDB Atlas mithilfe von Golang-Treibern können Probleme aufgrund von auftreten die Verwendung der neuen URL-Syntax, die in MongoDB 3.6 eingeführt wurde. Dieser Artikel untersucht die möglichen Fallstricke und bietet Lösungen.

Fehler: Es wird keine Verbindung hergestellt

Der vorgestellte Code versucht, eine Verbindung mithilfe von tls.Dial("tcp" herzustellen. , addr.String(), tlsConfig) Funktion. Es wird jedoch kein Timeout angegeben, was dazu führen kann, dass der Code auf unbestimmte Zeit blockiert. Um dieses Problem zu beheben, legen Sie das Timeout explizit mit dialInfo.Timeout = time.Duration(30) fest.

Fehler: Keine erreichbaren Server

Bei Verwendung der Funktion mgo.DialWithInfo Beim SCRAM-Mechanismus kann ein Fehler auftreten, der darauf hinweist, dass keine erreichbaren Server gefunden wurden. Dies liegt daran, dass der globalsign/mgo-Treiber derzeit den SRV-Verbindungszeichenfolgen-URI nicht unterstützt. Alternativ können Sie das Nicht-SRV-Verbindungs-URI-Format (MongoDB v3.4) verwenden oder stattdessen den Mongo-Go-Treiber verwenden, der den SRV-Verbindungs-URI unterstützt.

Beispielcode mit Mongo-go -driver

Um die Verbindung mithilfe des Mongo-Go-Treibers mit dem SRV-Verbindungs-URI zu demonstrieren, betrachten Sie den folgenden Code Snippet:

mongoURI := "mongodb+srv://admin:[email protected]/dbname?ssl=true&retryWrites=true"

client, err := mongo.NewClient(options.Client().ApplyURI(mongoURI))
if err != nil {
    log.Fatal(err)
}
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
err = client.Connect(ctx)
defer client.Disconnect(ctx)

if err != nil {
    log.Fatal(err)
}
Nach dem Login kopieren

Dieses Beispiel ist kompatibel mit der aktuellen Version von mongo-go-driver, v1.0.0.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Golang-Treibern und der neuen URL-Syntax erfolgreich eine Verbindung zu MongoDB Atlas herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage