MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Łączenie się z MongoDB Atlas przy użyciu Golang mgo:Trwały brak dostępnego serwera do zestawu replik

Korzystanie ze sterownika MongoDB Go fragmentu kodu mgo poniżej, aby połączyć się z MongoDB Atlas działa, przy użyciu przykładowych danych:

import (
    "gopkg.in/mgo.v2"
    "crypto/tls"
    "net"
)

tlsConfig := &tls.Config{}

dialInfo := &mgo.DialInfo{
    Addrs: []string{"prefix1.mongodb.net:27017", 
                    "prefix2.mongodb.net:27017",
                    "prefix3.mongodb.net:27017"},
    Database: "authDatabaseName",
    Username: "user",
    Password: "pass",
}
dialInfo.DialServer = func(addr *mgo.ServerAddr) (net.Conn, error) {
    conn, err := tls.Dial("tcp", addr.String(), tlsConfig)
    return conn, err
}
session, err := mgo.DialWithInfo(dialInfo)

Zauważ, że możesz również określić tylko jeden z członków zestawu replik jako ziarno. Na przykład:

Addrs: []string{"prefix2.mongodb.net:27017"}

Zobacz też:

  • tls.Dial()
  • Informacje o wybieraniu
  • DialWithInfo

Aktualizacja :

Możesz również użyć metody ParseURL() do przeanalizowania ciągu MongoDB Atlas URI. Jednak obecnie ta metoda nie obsługuje SSL (mgo.V2 PR:304)

Rozwiązaniem jest usunięcie ssl=true wiersz przed parsowaniem.

//URI without ssl=true
var mongoURI = "mongodb://username:[email protected],prefix2.mongodb.net,prefix3.mongodb.net/dbName?replicaSet=replName&authSource=admin"

dialInfo, err := mgo.ParseURL(mongoURI)

//Below part is similar to above. 
tlsConfig := &tls.Config{}
dialInfo.DialServer = func(addr *mgo.ServerAddr) (net.Conn, error) {
    conn, err := tls.Dial("tcp", addr.String(), tlsConfig)
    return conn, err
}
session, _ := mgo.DialWithInfo(dialInfo)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mangusta zapisz vs wstaw vs utwórz

  2. Jak korzystać z operacji $cond w ramach agregacji Spring-MongoDb?

  3. Najlepszy sposób na hostowanie MongoDB na DigitalOcean

  4. MongoDB-as-a-Service na własnym koncie Amazon AWS

  5. Samouczek MongoDB na rok 2022 – Dowiedz się, czym jest MongoDB?