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
Mary-Kate OlsenOriginal
2024-12-26 19:28:14943Durchsuche

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)
}

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!

Stellungnahme:
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