首页 > 后端开发 > Golang > 如何使用最新驱动程序从 Go 连接到 MongoDB Atlas?

如何使用最新驱动程序从 Go 连接到 MongoDB Atlas?

Barbara Streisand
发布: 2024-12-05 01:37:09
原创
342 人浏览过

How to Connect to MongoDB Atlas from Go Using the Latest Drivers?

来自 Go 的 MongoDB 3.6 URI 连接

问:如何在最新版本的 MongoDB 中使用 golang 驱动程序连接到 MongoDB Atlas ?

3.6 版本中的 Go 驱动不再支持 SRV默认连接 URI 格式。相反,用户应该使用非 SRV 连接 URI 格式。

修复:

<br>mongoURI := "mongodb://admin: [电子邮件受保护]:27017/dbname"<p>dialInfo,错误:= mgo.ParseURL(mongoURI)<br>if err != nil {</p><pre class="brush:php;toolbar:false">panic(err)
登录后复制

}
dialInfo.Timeout = time.Duration(30)
会话,err := mgo. DialWithInfo(dialInfo)
if err != nil {

println("error")
log.Fatal(err)
登录后复制

}

问:收到“无法访问的服务器”错误

出现此问题的原因是globalsign/mgo 不支持 SRV 连接字符串 URI

修复:

使用 mongo-go-driver 代替使用 SRV 连接 URI 进行连接:

<br> mongoURI := "mongodb srv://admin:[email protected]/dbname?ssl=true&retryWrites=true"<p>客户端,err := mongo.NewClient(options.Client().ApplyURI(mongoURI))<br>如果出错!= nil {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">log.Fatal(err)
登录后复制
登录后复制

}
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
延迟取消()
err = client.Connect(ctx)
if err != nil {

log.Fatal(err)
登录后复制

}
推迟client.Disconnect(ctx)

database := client.Database("go")
collection := database.Collection("atlas")

注意:将 mongo-go-driver 更新到 1.0.0 或更高版本以兼容提供的示例。

以上是如何使用最新驱动程序从 Go 连接到 MongoDB Atlas?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板