首頁 > 後端開發 > Golang > 如何使用具有新 URL 語法的 Golang 驅動程式成功連接到 MongoDB Atlas?

如何使用具有新 URL 語法的 Golang 驅動程式成功連接到 MongoDB Atlas?

Mary-Kate Olsen
發布: 2024-12-26 19:28:14
原創
878 人瀏覽過

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

使用Golang 驅動程式透過新URL 語法連接到MongoDB Atlas

使用Golang 驅動程式連接到MongoDB Atlas 時,可能會因為以下原因出現問題使用MongoDB 3.6 中引入的新URL 語法。本文探討了潛在的陷阱並提供了解決方案。

錯誤:未連線

程式碼嘗試使用 tls.Dial("tcp" 建立連線、addr.String()、tlsConfig) 函數。但是,它沒有指定超時,這可能會導致程式碼無限期阻塞。若要解決此問題,請使用dialInfo.Timeout = time.Duration(30).

Error: No Reachable Servers

使用mgo.DialWithInfo 函數時明確設定逾時使用SCRAM 機制,可能會發生錯誤,指示未找到可存取的伺服器。這是因為 globalsign/mgo 驅動程式目前不支援 SRV 連接字串 URI。或者,使用非 SRV 連接 URI 格式 (MongoDB v3.4) 或考慮使用 mongo-go-driver,它支援 SRV 連接 URI。

使用Mongo-go 的範例程式碼-driver

要示範使用mongo-go-driver 與SRV 連接URI 進行連接,請考慮以下程式碼snippet:

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)
}
登入後複製

此範例與目前版本的mongo-go-driver v1.0.0 相容。

以上是如何使用具有新 URL 語法的 Golang 驅動程式成功連接到 MongoDB Atlas?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板