设置文档数据库
使用 HAQM DocumentDB(兼容 MongoDB)和 AWS Cloud9
HAQM DocumentDB(兼容 MongoDB)是一种快速、可扩展、高度可用且完全托管的文档数据库服务,支持 MongoDB 工作负载,可让用户轻松存储、查询和索引 JSON 数据。
本教程介绍了如何通过 AWS Cloud9 开始使用 HAQM DocumentDB。您将了解如何通过 Mongo Shell 从 AWS Cloud9 环境连接到 HAQM DocumentDB 集群并运行一些查询。
下图显示了该演练的最终架构。

关于本教程 | |
---|---|
时间 | 10 分钟或更短 |
费用 | HAQM DocumentDB 免费试用:为期 30 天,每月 750 个小时免费使用t3.medium 实例。 AWS Cloud9 符合免费套餐条件。有关更多信息,请参阅 AWS Cloud9 定价。 |
使用案例 | 数据库 |
产品 | HAQM 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 – 在 HAQM 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.创建 HAQM DocumentDB 集群
3.1 – 在 HAQM DocumentDB 管理控制台的集群下,选择创建。

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

3.3 – 将其他设置保留为默认设置。
3.4 – 在身份验证部分,输入用户名和密码。

3.5 – 打开显示高级设置。

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

3.7 – 选择创建集群。
HAQM DocumentDB 现在正在预置您的集群,这可能需要几分钟才能完成。当集群和实例状态都显示为“可用”时,您可以连接到该集群。当 HAQM DocumentDB 预置集群时,请完成剩余步骤以连接到 HAQM 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=http://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.6/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=http://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 – 要对动态数据进行加密,请下载 HAQM Document DB 的 CA 证书。请参阅以下代码:
wget http://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem
4.7 – 现在,您已准备好连接到 HAQM DocumentDB 集群。
5.连接到 HAQM DocumentDB 集群
5.1 – 在 HAQM 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> 提示时,您已成功连接到 HAQMDocumentDB 集群。
有关问题排查的信息,请参阅排查 HAQM 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.清理
恭喜
本教程向您介绍了如何通过创建 AWS Cloud9 环境来开始使用 HAQM DocumentDB。
您能够安装 Mongo Shell、创建 HAQM DocumentDB 集群、连接到集群并执行一些查询,并了解如何轻松在 HAQM DocumentDB 中插入和查询 JSON 文档。
HAQM DocumentDB(兼容 MongoDB)是一种快速、可扩展、高度可用且完全托管的文档数据库服务,支持 MongoDB 工作负载,可让用户轻松存储、查询和索引 JSON 数据。