首页 > 后端开发 > Golang > 如何使用更新的'mongodb srv” URL 语法从 Go 连接到 MongoDB Atlas?

如何使用更新的'mongodb srv” URL 语法从 Go 连接到 MongoDB Atlas?

Linda Hamilton
发布: 2024-12-07 15:21:13
原创
933 人浏览过

How to Connect to MongoDB Atlas from Go using the Updated `mongodb srv` URL Syntax?

使用新 URL 语法从 Go 连接到 MongoDB Atlas

查询:

如何使用连接到 MongoDB Atlas最新版本 Go 中更新的 mongodb srv URL 语法驱动程序?

解决方案:

以前,Go 驱动程序使用自定义 URL 解析器来连接到 MongoDB Atlas。然而,在 MongoDB 3.6 中,原生的 Go url.Parse 函数用于解析新的 URL 格式:

package main

import (
    "context"
    "log"
    "time"

    "go.mongodb.org/mongo-driver/bson"
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
)

func main() {
    mongoURI := "mongodb+srv://admin:[email protected]/dbname?ssl=true&retryWrites=true"

    // Set a timeout for connection establishment.
    ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
    defer cancel()

    // Use mongo-go-driver to connect to Atlas.
    client, err := mongo.NewClient(options.Client().ApplyURI(mongoURI))
    if err != nil {
        log.Fatal(err)
    }
    if err = client.Connect(ctx); err != nil {
        log.Fatal(err)
    }
    defer client.Disconnect(ctx)

    // Now you can perform database operations as usual.
    database := client.Database("go")
    collection := database.Collection("atlas")
    err = collection.InsertOne(ctx, bson.M{"username": "testuser"})
    if err != nil {
        log.Fatal(err)
    }
}
登录后复制

注意:

如果遇到“没有可访问的服务器”错误,请确保:

  • 您正在使用有效的 MongoDB Atlas 连接具有正确凭据的 URI。
  • 您正在使用与 MongoDB 3.6 或更高版本兼容的 Go 驱动程序。

以上是如何使用更新的'mongodb srv” URL 语法从 Go 连接到 MongoDB Atlas?的详细内容。更多信息请关注PHP中文网其他相关文章!

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