你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure 门户连接到 Azure DocumentDB

MongoDB Shell (mongosh) 是用于与 MongoDB 部署进行交互的 JavaScript 和 Node.js 环境。 它是一种常用的社区工具,用于测试查询并与 Azure DocumentDB 群集中的数据进行交互。 Azure 门户包含多个工具来查询 MongoDB 数据,包括 Azure Cloud Shell。 Azure Cloud Shell 是一个交互式、经过身份验证且可通过浏览器访问的终端,用于管理 Azure 资源。 本文介绍如何在 Azure Cloud Shell 中使用 MongoDB Shell 连接到 Azure DocumentDB 群集。

先决条件

  • 现有的 Azure DocumentDB 群集

  • 允许网络内的客户端连接到群集的防火墙规则。 有关详细信息,请参阅 配置防火墙

  • 可选)只有在虚拟网络中使用 Azure Cloud Shell(与 Azure DocumentDB 相同或对等互连)时,才需要满足这些先决条件。

    • 一个或多个现有 Azure 虚拟网络,其中包含用于 Azure Cloud Shell 和 Azure DocumentDB 部署的子网。

    • Azure DocumentDB 群集的专用终结点。 有关详细信息,请参阅 配置专用链接

    • Azure Cloud Shell 部署在与 Azure DocumentDB 专用终结点具有连接的同一个虚拟网络或对等虚拟网络中。 有关详细信息,请参阅 将 Cloud Shell 部署到虚拟网络

允许从 Azure Cloud Shell 访问群集

首先,确保 Azure Cloud Shell 可以通过在防火墙中允许其 IP 地址来访问 Azure DocumentDB 群集。

  1. 登录到 Azure 门户 (https://portal.azure.com)。

  2. 导航到 Azure DocumentDB 群集。

  3. 从导航菜单中选择 “网络 ”。

  4. “公共访问”部分的“网络”页上,选择“+ 添加 Azure Cloud Shell IP”选项,自动将当前 IP 地址添加到允许的列表。

  5. 选择保存以应用更改。

注释

为了确保网络连通性,请确保允许您的区域的特定 IP 地址。 有关详细信息,请参阅 Azure DocumentDB 的 IP 地址

通过快速入门指南使用 Azure Cloud Shell 连接

若要使用 MongoDB Shell 直接连接到 Azure DocumentDB,请使用 Azure 门户中资源页上提供的快速启动体验。

  1. 在群集资源页中,从导航菜单中选择“快速启动”(预览)。

  2. 然后选择 “打开 MongoDB shell”。

  3. 等待 MongoDB Shell 环境启动。

  4. 环境准备就绪后,输入 Y 接受通知。

    注释

    如果在接受通知后遇到使用 MongoDB Shell 进行连接的问题,请确保 Azure Cloud Shell 有权访问群集。

  5. 现在,输入密码,将群集连接到 Cloud Shell。

获取群集凭据

获取连接到此群集所需的连接字符串。

  1. 登录到 Azure 门户https://portal.azure.com)。

  2. 导航到现有的 Azure DocumentDB 群集。

获取用于连接到群集的凭据。

  1. 在群集页上,在资源菜单中选择 “连接字符串 ”选项。

  2. “连接字符串 ”部分中,复制或记录 “连接字符串 ”字段中的值。

显示连接字符串选项的屏幕截图。

重要

门户中的连接字符串不包括密码值。 必须将 <password> 占位符替换为创建群集时输入的凭据或以交互方式输入密码。

在 Azure Cloud Shell 中手动配置 MongoDB Shell

使用节点包管理器(npm)将 MongoDB Shell (mongosh) 客户端安装到 Azure Cloud Shell 实例。

  1. 打开配置了 Bash 脚本环境的 Azure Cloud Shell。

  2. 在本地用户目录中安装 MongoDB Shell 版本 1

    npm install mongosh@1
    
  3. 等待安装完成。

  4. 通过获取该工具的版本 mongosh 来验证安装是否成功。

    npx mongosh --version
    

连接至群集

使用 MongoDB Shell,通过不包含密码的连接字符串连接到群集。 使用交互式密码提示输入密码作为连接步骤的一部分。

  1. 通过在 MongoDB Shell 提示符中输入密码进行连接。 对于此步骤,请使用没有密码的连接字符串。

    npx mongosh "mongodb+srv://<username>@<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    
  2. 提供密码并成功进行身份验证后,请观察出现的警告。

    ------
       Warning: Non-Genuine MongoDB Detected
       This server or service appears to be an emulation of MongoDB rather than an official MongoDB product.
    ------
    

    小窍门

    可以放心地忽略此警告。 之所以生成此警告,是因为连接字符串包含 cosmos.azure。 Azure DocumentDB 是原生 Azure 平台即服务 (PaaS) 服务。

执行测试查询

通过执行一系列测试命令和查询来验证是否已成功连接到群集。

  1. 通过运行 connectionStatus 命令检查连接状态。

    db.runCommand({connectionStatus: 1})
    
    {
      ...
      ok: 1
    }
    
  2. 列出群集中的数据库。

    show dbs
    
  3. 切换到特定数据库。 将 <database-name> 占位符替换为群集中任何数据库的名称。

    use <database-name>
    

    小窍门

    例如,如果数据库名称为 inventory,则命令为 use inventory

  4. 列出数据库中的集合。

    show collections
    
  5. 查找特定集合中的前五项。 将 <collection-name> 占位符替换为群集中任何集合的名称。

    db.<collection-name>.find().limit(5)
    

    小窍门

    例如,如果集合名称为 equipment,则命令为 db.equipment.find().limit(5)