40+ 款精选企业级云服务一站式体验,全方位满足业务需求

 ✕

快速掌握 Amazon DocumentDB 文档数据库

前言

Amazon DocumentDB 是一款具备灵活数据模型的文档数据库,可以在各行各业的业务场景中发挥价值。本教程以某游戏为例,你可以快速启动并搭建一个文档数据库系统,以游戏账号存储为基础,并模拟操作为特定活跃账号推送促销活动信息为场景,进行实践操作。

完成此演练的费用低于 5 元人民币。

关于本教程 
预计部署时间  20 分钟 - 30 分钟
费用 

低于 5 元人民币

受众  通用
级别  初级
相关产品  Amazon DocumentDB
相关行业  通用
上次更新时间  2022 年 4 月

教程说明

进入开发环境 

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

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

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

  • 1. 访问 Amazon EC2 console (区域已选择宁夏区域)

    2. 创建 EC2 密钥对

    输入名称: docdbkey (其它都按照缺省)

    3. 创建新的EC2实例

    访问 EC2 console

    4. 选择AMI 类型:Amazon Linux 2 AMI (HVM), SSD Volume Type

    5. 选择实例类型:t2.micro, 点击审核和启动按钮,开始创建实例

    6. 选择刚创建的 EC2 Key Pairs:docdbkey 点击启动新实例按钮

    8. 为新创建 EC2 实例加上 Label Name (docdb)

    9. 为新创建的 EC2 实例安全组,增加 Label Name (docdb)

  • 1. 访问 Amazon DocumentDB console (区域已选择宁夏区域)

    2. 点击创建集群

    输入Cluster Name: docdb
    选择 Instance Class: db.t3.medium
    选择 Number of Instances: 1 

    输入 Master Username: labuser
    输入 Master Password: Password1
     

    Amazon DocumentDB Cluster 开始创建  (整个过程大致几分种时间) 

  • 1. 访问 Amazon DocumentDB Cluster 点击刚才建的 DocumentDB 集群: docdb

    2. 选择集群 docdb 安全组 做进一步配置

    3. 编辑安全组入站规则

    端口输入:27017
    允许安全组选择:标签为 docdb 的 EC2 安全组
    选择保存规则

  • 2. 获取 SSH 客户端连接新建 EC2 实例相关信息

    3. 启动本地电脑 打开 SSH 客户端,例如 Mac 电脑 Terminal 工具 连接到 EC2 堡垒机,密钥是之前下载密钥 docdbkey.pem

    chmod 0600 docdbkey.pem
    ssh -i docdbkey.pem ec2-user@[bastionEndpoint]

    如果本地电脑没有安装 SSH 客户端,可以采用 web console 连接到 EC2

    4. 连接到 EC2 堡垒机后,安装 MongoShell

    a. 要安装 4.0 mongo shell,请在命令提示符中使用以下命令创建 repo 文件:

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

    b. 完成之后,使用以下命令安装 mongo shell:

    sudo yum install -y mongodb-org-shell

    5. 下载 Amazon DocumentDB 连接所需要的证书

    Amazon DocumentDB 是安全级别非常高的数据库服务,缺省TLS是打开的, 需要证书连接

    wget https://rds-truststore.s3.cn-north-1.amazonaws.com.cn/cn-northwest-1/cn-northwest-1-bundle.pem

    请注意需要将下载证书改名成rds-combined-ca-cn-bundle.pem

    mv cn-northwest-1-bundle.pem rds-combined-ca-cn-bundle.pem
  • 1. 访问 Amazon DocumentDB Cluster 点击刚才建的 Amazon DocumentDB 集群:docdb

    2. 拷贝 Mongo shell 连接部分 替换密码为刚刚设置的 Password1

    3. 连接到 EC2 堡垒机,拷贝上面步骤 2 MongoShell 命令 ( 密码替换成 Password1 ),执行 Mongo Shell 命令

    4. 成功连接到 Amazon DocumentDB 集群

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

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

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

    您将获得以下输出:

    WriteResult({ "nInserted" : 1 })

    2. 您可以阅读使用 findOne() 命令编写的文档(因为它只返回一个文档)

    请参阅以下代码:

    db.collection.findOne()

    您将获得以下输出:

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

    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 ] }

    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,

    5. 使用筛选条件查询单个文档。

    请参阅以下代码:

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

    您将获得以下输出:

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

    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
    }

    7. 您可以使用以下查询来验证结果:

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

    您将获得以下输出:

    { "_id" : 1, "name" : "Tim", "status" : "active", "level" : 12, "score" : 212 }
  • 特别提示:集群持续运行会产生云上花费,实验完毕,请删除实验所使用相关资源。

    1.  删除 Amazon DocumentDB 集群

    a. 先修改 Amazon DocumentDB 集群 修改删除保护选项

    把删除保护选项去掉

    选择立即生效

    b. 先选中 Amazon DocumentDB 集群实例删除

    整个 Amazon DocumentDB Cluster 会被删除

    2.  删除 EC2 堡垒机

    访问 EC2 instance 页面 选择要删除 EC2 实例 选择 Terminate 操作

更多教程

获取更多上手教程,开发资料,以及成本管理攻略。

现在就开始在亚马逊云上构建

无论您是在寻找计算能力、数据库、存储、内容分发、人工智能与机器学习,大数据分析还是其他功能,亚马逊云科技都有相应的服务来帮助您建立具有更高灵活性、可扩展性和可靠性的复杂应用。

企业出海或个人体验

超过200项服务
包含80余种产品免费试用

发展中国业务

近百项服务
包含宁夏区域20余种产品免费试用
Sponsor
关闭
1010 0766
由光环新网运营的
北京区域
1010 0966
由西云数据运营的
宁夏区域
关闭
由光环新网运营的
北京区域
由西云数据运营的
宁夏区域