Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Berjaya Menyambung ke MongoDB Atlas menggunakan Pemacu Golang dengan Sintaks URL Baharu?

Bagaimana untuk Berjaya Menyambung ke MongoDB Atlas menggunakan Pemacu Golang dengan Sintaks URL Baharu?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-26 19:28:14880semak imbas

How to Successfully Connect to MongoDB Atlas using Golang Drivers with the New URL Syntax?

Menggunakan Pemacu Golang untuk Menyambung ke MongoDB Atlas dengan Sintaks URL Baharu

Semasa menyambung ke MongoDB Atlas menggunakan pemacu Golang, isu mungkin timbul disebabkan penggunaan sintaks URL baharu yang diperkenalkan dalam MongoDB 3.6. Artikel ini meneroka kemungkinan perangkap dan menyediakan penyelesaian.

Ralat: Tidak Bersambung

Kod yang dibentangkan cuba mewujudkan sambungan menggunakan tls.Dial("tcp" , fungsi addr.String(), tlsConfig). Walau bagaimanapun, ia tidak menyatakan tamat masa, yang boleh menyebabkan kod disekat selama-lamanya. Untuk menyelesaikan masalah ini, tetapkan tamat masa secara eksplisit menggunakan dialInfo.Timeout = masa.Duration(30).

Ralat: Tiada Pelayan Boleh Dicapai

Apabila menggunakan fungsi mgo.DialWithInfo dengan mekanisme SCRAM, ralat mungkin berlaku yang menunjukkan bahawa tiada pelayan yang boleh dicapai ditemui. Ini kerana pemacu globalsign/mgo tidak menyokong URI rentetan sambungan SRV pada masa ini. Sebagai alternatif, gunakan format URI sambungan bukan SRV (MongoDB v3.4) atau pertimbangkan untuk menggunakan pemacu mongo-go, yang menyokong URI sambungan SRV.

Kod Contoh Menggunakan Mongo-go -driver

Untuk menunjukkan penyambungan menggunakan pemacu mongo-go dengan URI sambungan SRV, pertimbangkan perkara berikut coretan kod:

mongoURI := "mongodb+srv://admin:[email protected]/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)
}

Contoh ini serasi dengan versi semasa mongo-go-driver, v1.0.0.

Atas ialah kandungan terperinci Bagaimana untuk Berjaya Menyambung ke MongoDB Atlas menggunakan Pemacu Golang dengan Sintaks URL Baharu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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