设置文档数据库

使用 Amazon DocumentDB(兼容 MongoDB)和 AWS Cloud9

Amazon DocumentDB(兼容 MongoDB)是一种快速、可扩展、高度可用且完全托管的文档数据库服务,支持 MongoDB 工作负载,可让用户轻松存储、查询和索引 JSON 数据。

本教程介绍了如何通过 AWS Cloud9 开始使用 Amazon DocumentDB。您将了解如何通过 Mongo Shell 从 AWS Cloud9 环境连接到 Amazon DocumentDB 集群并运行一些查询。

下图显示了该演练的最终架构。

关于本教程
时间 10 分钟或更短                                  
费用

Amazon DocumentDB 免费试用:为期 30 天,每月 750 个小时免费使用t3.medium 实例。

AWS Cloud9 符合免费套餐条件。有关更多信息,请参阅 AWS Cloud9 定价

使用案例 数据库
产品 Amazon DocumentDB(兼容 MongoDB)、AWS Cloud9
受众 开发人员
级别 200:中级。 本内容侧重于提供 AWS 服务或功能的概述,并假设客户具有该主题的工作经验。
上次更新日期 2020 年 8 月

教程说明

进入开发环境 

点击右侧按钮“登陆控制台”进入开发环境,如果您还没有账户,请先注册账户。

海外区域业务或个人使用,请注册“海外区域账户”;

中国区域业务(需企业营业执照认证),请注册“中国区域账户”。

1.创建 AWS Cloud9 环境

1.1 – 使用 AWS 管理控制台,在 AWS Cloud9 管理控制台上选择创建环境

1.2 – 输入名称 DocumentDBCloud9

1.3 – 选择下一步

1.4 – 在配置设置部分,接受所有默认设置。

1.5 – 选择下一步

1.6 – 在审核部分,选择创建环境

1.7 – 预置 AWS Cloud9 环境最多需要三分钟时间。

2.创建安全组

2.1 – 在 Amazon EC2 管理控制台网络与安全下,选择安全组

2.2 – 选择创建安全组

2.3 – 对于安全组名称,输入 demoDocDB

2.4 – 对于描述,输入描述。

2.5 – 对于 VPC,接受默认 VPC 的使用

2.6 – 在入站规则部分,选择添加规则.

2.7 – 对于类型,选择自定义 TCP 规则

2.8 – 对于端口范围,输入 27017

2.9 – 源安全组是您刚刚创建的 AWS Cloud9 环境的安全组。将保留为默认值自定义,并在自定义旁边的字段中输入“cloud9”以查看可用安全组的列表。

2.10 – 选择包含名称 aws-cloud9-<环境名称> 的安全组

2.11 – 接受所有其他默认设置,然后选择创建安全组。您无需修改出站规则。

以下屏幕截图显示了您在此步骤中创建的安全组,以及在创建 AWS Cloud9 环境时创建的 AWS Cloud9 安全组。

3.创建 Amazon DocumentDB 集群

3.1 – 在 Amazon DocumentDB 管理控制台集群下,选择创建

3.2 – 在创建 Amazon DocumentDB 集群页面上,在实例类下选择 db.t3.medium,然后为实例数量选择 1。这些选项有助于最大程度地降低成本。

3.3 – 将其他设置保留为默认设置。

3.4 – 在身份验证部分,输入用户名和密码。

3.5 – 打开显示高级设置

3.6 – 在网络设置部分,对于 VPC 安全组,选择 demoDocDB

3.7 – 选择创建集群

Amazon DocumentDB 现在正在预置您的集群,这可能需要几分钟才能完成。当集群和实例状态都显示为“可用”时,您可以连接到该集群。当 Amazon DocumentDB 预置集群时,请完成剩余步骤以连接到 Amazon DocumentDB 集群。

4.安装 Mongo Shell

4.1 – 如果您的 AWS Cloud9 环境仍处于打开状态,则可以跳至步骤 3。

4.2 – 在 AWS Cloud9 管理控制台您的环境下,选择 DocumentDBCloud9

4.3 – 选择打开 IDE

4.4 – 在命令提示符下,使用以下代码创建存储库文件:

echo -e "[mongodb-org-3.6] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.6/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc" | sudo tee /etc/yum.repos.d/mongodb-org-3.6.repo

4.5 – 完成后,使用以下代码安装 Mongo Shell:

sudo yum install -y mongodb-org-shell

4.6 – 要对动态数据进行加密,请下载 Amazon Document DB 的 CA 证书。请参阅以下代码:

wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem

4.7 – 现在,您已准备好连接到 Amazon DocumentDB 集群。

5.连接到 Amazon DocumentDB 集群

5.1 – 在 Amazon DocumentDB 管理控制台集群下,找到您的集群。本博文使用集群 docdb-2020-02-08-14-15-11。

5.2 – 通过单击集群标识符来选择您创建的集群(在此示例中为 docdb-2020-02-08-14-15-11)。

5.3 – 复制“使用 Mongo Shell 连接到此集群”下提供的连接字符串。

省略 <insertYourPassword>,以便在连接时由 Mongo Shell 提示您输入密码。这样,您不必以明文形式输入密码。

5.4 – 您的连接字符串应类似于以下代码(请参见屏幕截图)

5.5 – 当您输入密码并看到 rs0:PRIMARY> 提示时,您已成功连接到 AmazonDocumentDB 集群。

有关问题排查的信息,请参阅排查 Amazon DocumentDB 问题

6.插入和查询数据

6.1 - 现在您已连接到集群,您可以运行一些查询来熟悉文档数据库的使用。

要插入单个文档,请输入以下代码:

db.collection.insert({"hello":"DocumentDB"})

您将获得以下输出:

WriteResult({ "nInserted" : 1 })

6.2 - 您可以阅读使用 findOne() 命令编写的文档(因为它只返回一个文档)。请参阅以下代码:

db.collection.findOne()

您将获得以下输出:

{ "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }

6.3 - 要执行更多查询,请考虑游戏档案用例。首先,将一些条目插入名为档案的集合中。请参阅以下代码:

db.profiles.insertMany([

{ "_id" : 1, "name" : "Tim", "status": "active", "level": 12, "score":202},

{ "_id" : 2, "name" : "Justin", "status": "inactive", "level": 2, "score":9},

{ "_id" : 3, "name" : "Beth", "status": "active", "level": 7, "score":87},

{ "_id" : 4, "name" : "Jesse", "status": "active", "level": 3, "score":27}

])

您将获得以下输出:

{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3, 4 ] }

6.4 - 使用 find() 命令返回个人资料集合中的所有文档。请参阅以下代码:

db.profiles.find()

您将获得以下输出:

{ "_id" : 1, "name" : "Tim", "status" : "active", "level" : 12, "score" : 202 }

{ "_id" : 2, "name" : "Justin", "status" : "inactive", "level" : 2, "score" : 9 }

{ "_id" : 3, "name" : "Beth", "status" : "active", "level" : 7, "score" : 87 }

{ "_id" : 4, "name" : "Jesse", "status" : "active", "level" : 3,

6.5 - 使用筛选条件查询单个文档。请参阅以下代码。

db.profiles.find({name: "Jesse"})

您将获得以下输出:

{ "_id" : 4, "name" : "Jesse", "status" : "active", "level" : 3, "score" : 27 }

6.6 - 游戏中的一个常见用例是查找给定用户的档案,并在该用户的档案中增加值。在此场景中,您希望向最活跃的游戏玩家进行促销。如果玩家填写了一项调查,则其分数会增加 10。

为此,请使用 findAndModify 命令。在此用例中,用户 Tim 收到并完成了调查。要为 Tim 提供积分,请输入以下代码:

db.profiles.findAndModify({

   query: { name: "Tim", status: "active"},

   update: { $inc: { score: 10 } }

})

您将获得以下输出:

{

      "_id" : 1,

      "name" : "Tim",

      "status" : "active",

      "level" : 12,

      "score" : 202

}

6.7 - 您可以使用以下查询来验证结果:

db.profiles.find({name: "Tim"})

您将获得以下输出:

{ "_id" : 1, "name" : "Tim", "status" : "active", "level" : 12, "score" : 212 }

7.清理

完成演练后,请停止 Amazon DocumentDB 集群以降低成本或完全删除集群

默认情况下,在处于非活动状态 30 分钟后,AWS Cloud9 环境将停止底层 EC2 实例,以帮助节省成本。

 

恭喜

本教程向您介绍了如何通过创建 AWS Cloud9 环境来开始使用 Amazon DocumentDB。

您能够安装 Mongo Shell、创建 Amazon DocumentDB 集群、连接到集群并执行一些查询,并了解如何轻松在 Amazon DocumentDB 中插入和查询 JSON 文档。

Amazon DocumentDB(兼容 MongoDB)是一种快速、可扩展、高度可用且完全托管的文档数据库服务,支持 MongoDB 工作负载,可让用户轻松存储、查询和索引 JSON 数据。

本教程对您是否有帮助?