sql >> Database teknologi >  >> NoSQL >> MongoDB

Opretter forbindelse til MongoDB Atlas ved hjælp af Golang mgo:Vedvarende server, der ikke kan nås til replikasæt

Brug af MongoDB Go driver mgo kodestykke nedenfor til at oprette forbindelse til MongoDB Atlas fungerer ved at bruge dine eksempeldata:

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)

Bemærk, at du også kun kan angive ét af replikasætmedlemmerne som et frø. For eksempel:

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

Se også:

  • tls.Dial()
  • DialInfo
  • DialWithInfo

Opdater :

Du kan også bruge metoden ParseURL() til at parse MongoDB Atlas URI-streng. Men i øjeblikket understøtter denne metode ikke SSL (mgo.V2 PR:304)

En løsning er at fjerne ssl=true linje før parsing.

//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. MongoDB Database og Indsamlingsstatistik

  2. Hvornår skal du deaktivere Transparent Huge Pages for redis

  3. Føj data til eksisterende gridfs-fil

  4. MongoDB db.collection.count()