当前位置: > > > > 如何使用官方 mongo-go-driver 连接到 MongoDB Atlas
如何使用官方 mongo-go-driver 连接到 MongoDB Atlas
来源:stackoverflow
2024-04-20 19:54:41
0浏览
收藏
怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面米云就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《如何使用官方 mongo-go-driver 连接到 MongoDB Atlas》,涉及到,有需要的可以收藏一下
问题内容
我正在查看与官方 mongo-go-driver 版本一起提供的教程,连接示例使用 localhost 上的 mongodb 服务器
// set client options
clientoptions := options.client().applyuri("mongodb://localhost:27017")
但是,新托管的 mongodb 服务 atlas 需要用户名和密码才能登录。连接字符串采用格式
mongodb://[username:password@]host1[/[database][?options]]
但是 atlas 的驱动程序示例中没有 golang 示例。
所以我想知道,登录 atlas 的最佳方式是什么,而不需要将密码硬编码到将在 github 上发布的源文件中?
解决方案
我在 aws 上托管我的测试 atlas 集群,因此我希望拥有与 aws 流程类似的凭证管理。来自:
默认提供程序链按以下顺序查找凭据:
-
环境变量。
-
共享凭据文件。
-
如果您的应用程序在 amazon ec2 实例上运行,则为 amazon ec2 的 iam 角色。
因此,我想为我的 atlas 示例的简单登录实现可验证的环境。下面的代码假设已在命令行中发出以下行
export mongo_pw='<yyour atlas 管理员用户密码>'
然后以下程序将验证您的连接
package main
import (
"context"
"fmt"
"os"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
var username = "<username>"
var host1 = "<atlas host>" // of the form foo.mongodb.net
func main() {
ctx := context.TODO()
pw, ok := os.LookupEnv("MONGO_PW")
if !ok {
fmt.Println("error: unable to find MONGO_PW in the environment")
os.Exit(1)
}
mongoURI := fmt.Sprintf("mongodb+srv://%s:%s@%s", username, pw, host1)
fmt.Println("connection string is:", mongoURI)
// Set client options and connect
clientOptions := options.Client().ApplyURI(mongoURI)
client, err := mongo.Connect(ctx, clientOptions)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
err = client.Ping(ctx, nil)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
fmt.Println("Connected to MongoDB!")
}
从这里开始,我原来问题中链接的教程的其余部分将顺利进行。
好了,本文到此结束,带大家了解了《如何使用官方 mongo-go-driver 连接到 MongoDB Atlas》,希望本文对你有所帮助!关注米云公众号,给大家分享更多Golang知识!
