Sambungan URI MongoDB 3.6 daripada Go
S: Cara menyambung ke MongoDB Atlas menggunakan pemacu golang dalam versi terkini MongoDB ?
Pemandu Go dalam versi 3.6 tidak lagi menyokong format URI sambungan SRV secara lalai. Sebaliknya, pengguna harus menggunakan format URI sambungan bukan SRV.
Betulkan:
<br>mongoURI := "mongodb://admin: [e-mel dilindungi]:27017/dbname"</p> <p>dialInfo, err := mgo.ParseURL(mongoURI)<br>if err != nil {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">panic(err)
}
dialInfo.Timeout = time.Duration(30)
session, err := mgo.DialWithInfo( dailInfo)
jika silap != tiada {
println("error") log.Fatal(err)
}
S: Mendapat ralat "tiada pelayan boleh dicapai"
Isu ini berlaku kerana globalsign/mgo tidak menyokong URI rentetan sambungan SRV belum.
Betulkan:
Gunakan mongo-go-driver sebaliknya untuk menyambung menggunakan sambungan SRV URI:
<br> mongoURI : = "mongodb srv://admin:[email protected]/dbname?ssl=true&retryWrites=true"</p> <p>client, err := mongo.NewClient(options.Client().ApplyURI(mongoURI))<br>jika ralat != tiada {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">log.Fatal(err)
}
ctx, batalkan := context.WithTimeout(context.Background(), 3*time.Second)
tunda batal()
err = client.Connect(ctx)
if err != nil {
log.Fatal(err)
}
tangguh pelanggan. Putuskan sambungan(ctx)
pangkalan data := client.Database("go")
collection := database.Collection("atlas")
Nota: Kemas kini mongo-go- pemacu kepada versi 1.0.0 atau lebih tinggi untuk keserasian dengan contoh yang diberikan.
Atas ialah kandungan terperinci Bagaimana untuk Menyambung ke MongoDB Atlas daripada Go Menggunakan Pemacu Terkini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!