Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyambung ke MongoDB Atlas dari Go: Menyelesaikan Isu Kebolehcapaian Pelayan dan Tamat Masa?

Bagaimana untuk Menyambung ke MongoDB Atlas dari Go: Menyelesaikan Isu Kebolehcapaian Pelayan dan Tamat Masa?

Mary-Kate Olsen
Lepaskan: 2025-01-03 07:44:40
asal
871 orang telah melayarinya

How to Connect to MongoDB Atlas from Go: Solving Timeout and Server Reachability Issues?

Mewujudkan Sambungan MongoDB Atlas daripada Go Menggunakan Struktur URL Baharu (MongoDB 3.6 )

Dalam percubaan anda sebelum ini untuk menyambung ke MongoDB Atlas daripada Go menggunakan mgo, anda menghadapi masalah dengan tamat masa DialInfo dan kebolehcapaian pelayan. Mari kita terokai isu ini dan sediakan penyelesaian:

Sifar Masa

DialInfo lalai mempunyai tamat masa sifar, menyebabkan proses penubuhan sambungan disekat selama-lamanya. Untuk menyelesaikan masalah ini, anda boleh menetapkan tamat masa secara eksplisit menggunakan:

dialInfo.Timeout = time.Duration(30)
session, err := mgo.DialWithInfo(dialInfo)
Salin selepas log masuk

Pelayan Tidak Boleh Dicapai

Kebimbangan anda tentang pelayan tidak boleh dicapai berpunca daripada kekurangan sokongan mgo untuk format URI rentetan sambungan SRV (MongoDB v3 .4). Untuk menangani had ini, anda boleh menggunakan format URI sambungan bukan srv:

mongoURI = "mongodb+srv://admin:password@my-atlas-cluster-01.mongodb.net:27017/dbname?ssl=true&retryWrites=true"
Salin selepas log masuk

Alternatif Go Driver untuk SRV

Jika anda lebih suka menggunakan SRV dalam URI sambungan anda, pertimbangkan untuk menggunakan pemandu mongo-go. Berikut ialah contoh:

mongoURI := "mongodb+srv://admin:password@my-atlas-cluster-01.mongodb.net/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)
}
database := client.Database("go")
collection := database.Collection("atlas")
Salin selepas log masuk

Perhatikan bahawa kod ini serasi dengan versi semasa mongo-go-driver (v1.0.0).

Atas ialah kandungan terperinci Bagaimana untuk Menyambung ke MongoDB Atlas dari Go: Menyelesaikan Isu Kebolehcapaian Pelayan dan Tamat Masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan