gpt4 book ai didi

database - Mongo-Go-Driver 无法连接

转载 作者:IT王子 更新时间:2023-10-29 01:53:39 24 4
gpt4 key购买 nike

所以我正在尝试使用 https://github.com/mongodb/mongo-go-driver连接到 golang 中的 mongo 数据库。

这是我的连接处理程序:

var DB *mongo.Database

func CreateConnectionHandler()(*mongo.Database, error){
fmt.Println("inside createConnection in database package")
godotenv.Load()
fmt.Println("in CreateConnectionHandler and SERVER_CONFIG: ")
fmt.Println(os.Getenv("SERVER_CONFIG"))
uri:=""
if os.Getenv("SERVER_CONFIG")=="kubernetes"{
fmt.Println("inside kubernetes db config")
uri = "mongodb://patientplatypus:SUPERSECRETPASSDOOT@
mongo-release-mongodb.default.svc.cluster.local:27017/
platypusNEST?authMechanism=SCRAM-SHA-1"
}else if os.Getenv("SERVER_CONFIG")=="compose"{
fmt.Println("inside compose db config")
uri = "mongodb://datastore:27017"
}
ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
client, err := mongo.Connect(ctx, uri)
if err != nil {
return nil, fmt.Errorf("mongo client couldn't connect: %v", err)
}
DB := client.Database("platypusNEST")
return DB, nil
}

我得到的错误:

api         | database/connection.go:29:30: cannot use uri (type 
string) as type *options.ClientOptions in argument to mongo.Connect

所以我尝试用这样的连接字符串替换uri:

client, err := mongo.Connect(ctx, "mongodb://datastore:27017")

但是还是报错。

将此与文档中的内容进行比较:

ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
client, err := mongo.Connect(ctx, "mongodb://localhost:27017")

而且一模一样!我真的不确定为什么会出现此错误。有什么想法吗?

最佳答案

对于那些前来搜索的人 - 文档在发布时已过时,但他们的最新推送在这里:https://github.com/mongodb/mongo-go-driver/commit/32946b1f8b9412a6a94e68ff789575327bb257cf让他们用连接来做这件事:

client, err := mongo.NewClient(options.Client().ApplyURI(uri))

您现在还需要导入选项包。快乐的黑客。

编辑:感谢 vcanales 发现这个 - 你是一位绅士和学者。

关于database - Mongo-Go-Driver 无法连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54778520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com