Docs 菜单
Docs 主页
/ / /
Go 驱动程序

Go 驱动程序快速入门

在此页面上

  • 设置您的项目
  • 创建并初始化项目
  • 将 MongoDB Go 驱动程序添加为依赖项
  • 创建 MongoDB 集群
  • 在 Atlas 中设置免费级集群
  • 连接集群
  • 从应用程序查询 MongoDB 集群
  • 添加连接字符串
  • 创建新文件
  • 创建 Go 应用程序
  • 运行应用程序
  • 后续步骤

本指南向您介绍如何创建一个使用 MongoDB Go Driver连接 MongoDB Atlas 集群的应用程序。如果希望使用其他驱动程序或编程语言连接 MongoDB,请参阅我们的 MongoDB 官方驱动程序列表

Go 驱动程序允许您从 Go 应用程序连接到 MongoDB 集群并与之通信。

MongoDB Atlas 是完全托管的云数据库服务,可在 MongoDB 集群托管数据。 在本指南中,我们将向您介绍 如何开始使用自己的免费(无需信用卡)集群。

按照以下步骤将 Go 应用程序与 MongoDB Atlas 集群进行连接。

1

创建一个新目录,并使用 go mod 初始化您的项目,如下命令所示:

mkdir go-quickstart
cd go-quickstart
go mod init go-quickstart
2

使用 go get 将 Go Driver添加为依赖项,如下命令所示:

go get go.mongodb.org/mongo-driver/v2/mongo

您可以在 MongoDB Atlas 上创建一个免费套餐 MongoDB 部署来存储和管理您的数据。MongoDB Altas 在云端托管和管理您的 MongoDB 数据库。

1

通读 Atlas 入门指南,以便设置新的 Atlas 帐户、免费套餐 MongoDB 集群、加载数据集并与数据交互。

2

创建数据库用户后,请将该用户的用户名和密码保存在一个安全位置,以便在后续步骤中使用。

完成这些步骤后,您将在 Atlas 部署一个新的 MongoDB 集群、一个新的数据库用户,并将示例数据集加载到此集群。

您可以通过提供连接 URI(也称为连接字符串)来连接到 MongoDB 部署,它指示驱动程序如何连接到 MongoDB 部署以及连接时的行为方式。

连接字符串包含部署的主机名或 IP 地址和端口、身份验证机制、用户档案(如果适用)以及连接选项。

1

要检索您在上一个节中创建的集群的连接字符串,请登录 Atlas 帐户。导航至 Database 部分,然后单击 Clusters。单击要连接到的集群的相应 Connect 按钮,如下所示:

Atlas Connection GUI 集群选择屏幕

然后,在 Connect to your application 标题下选择 Drivers 选项。从 Driver 选择菜单中选择“Go”,选择与您从 Version 选择菜单中安装的版本最匹配的版本。

2

单击连接字符串右侧的按钮以将其复制到剪贴板,如以下屏幕截图所示:

Atlas Connection GUI 连接字符串屏幕
3

将此连接字符串粘贴到您首选文本编辑器中的文件中,并将<db_username><db_password>占位符替换为数据库用户的用户名和密码。

将此文件保存到安全位置,以便在下一步中使用。

完成这些步骤后,您将拥有与 Atlas 集群相对应的连接字符串。

要了解如何通过 Atlas 连接 MongoDB Go Driver 的更多信息,请参阅 Atlas 驱动程序连接指南,然后从 Select your language 下拉列表中选择 Go

1

在您的终端中,运行以下命令以创建一个名为 MONGODB_URI 的环境变量,并将您的 Atlas 连接字符串设置为其值:

export MONGODB_URI='<your atlas connection string>'

注意

确保将连接字符串的 <db_password> 部分替换为您为拥有 atlasAdmin 权限的用户创建的密码。

2

请从项目的基目录运行以下命令,以创建一个名为 main.go 的新文件:

touch main.go
3

将以下代码复制并粘贴到您的 main.go 文件中。此代码针对 MongoDB Atlas 中的示例数据集运行查询。

package main
import (
"context"
"encoding/json"
"fmt"
"log"
"os"
"go.mongodb.org/mongo-driver/v2/bson"
"go.mongodb.org/mongo-driver/v2/mongo"
"go.mongodb.org/mongo-driver/v2/mongo/options"
)
func main() {
uri := os.Getenv("MONGODB_URI")
docs := "www.mongodb.com/zh-cn/docs/drivers/go/current/"
if uri == "" {
log.Fatal("Set your 'MONGODB_URI' environment variable. " +
"See: " + docs +
"usage-examples/#environment-variable")
}
client, err := mongo.Connect(options.Client().
ApplyURI(uri))
if err != nil {
panic(err)
}
defer func() {
if err := client.Disconnect(context.TODO()); err != nil {
panic(err)
}
}()
coll := client.Database("sample_mflix").Collection("movies")
title := "Back to the Future"
var result bson.M
err = coll.FindOne(context.TODO(), bson.D{{"title", title}}).
Decode(&result)
if err == mongo.ErrNoDocuments {
fmt.Printf("No document was found with the title %s\n", title)
return
}
if err != nil {
panic(err)
}
jsonData, err := json.MarshalIndent(result, "", " ")
if err != nil {
panic(err)
}
fmt.Printf("%s\n", jsonData)
}
4

从命令行使用以下命令运行示例代码:

go run main.go

当您运行 main.go 时,它会从示例数据集中输出电影的详细信息,如下所示:

{
"_id": "573a1398f29313caabce9682",
...
"title": "Back to the Future",
...
}

提示

如果没有收到任何输出或错误,请检查环境变量是否已正确设置,并确保已将示例数据集加载到集群。

完成这些步骤后,您有一个正常运行的应用程序,它使用 MongoDB Go Driver连接到 MongoDB 集群,对示例数据运行查询并打印结果。

CRUD 操作部分了解如何使用 MongoDB Go Driver 读取和修改数据,或者从使用示例中了解如何执行常用操作。

后退

MongoDB Go Driver