MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Menghubungkan ke MongoDB Atlas menggunakan Golang mgo:Persistent no reachable server to replika set

Menggunakan cuplikan kode mgo driver MongoDB Go di bawah ini untuk terhubung ke MongoDB Atlas berfungsi, menggunakan data contoh Anda:

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)

Perhatikan bahwa Anda juga dapat menentukan hanya satu anggota kumpulan replika sebagai benih. Misalnya:

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

Lihat juga:

  • tls.Dial()
  • Info Telepon
  • PanggilDenganInfo

Perbarui :

Anda juga dapat menggunakan metode ParseURL() untuk mengurai string URI MongoDB Atlas. Namun, saat ini metode ini tidak mendukung SSL (mgo.V2 PR:304)

Cara mengatasinya adalah dengan mengeluarkan ssl=true baris sebelum diurai.

//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. Mengapa skema saya tidak menambahkan nilai default dalam array luwak?

  2. Bagaimana menjalankan perintah mongodb mentah dari pymongo

  3. mongodb periksa apakah titik dalam poligon

  4. Apa perbedaan antara menyimpan dan menyisipkan di Mongo DB?

  5. Kamus<string, objek>-ke-BsonDocument konversi menghilangkan bidang _t