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

使用 Azure 门户连接到 Azure Cosmos DB for MongoDB (vCore)

适用对象: MongoDB vCore

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

先决条件

  • 现有的 Azure Cosmos DB for MongoDB (vCore) 群集。

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

  • 可选)仅当在与 Azure Cosmos DB for MongoDB vCore 对等互连的虚拟网络中使用 Azure Cloud Shell 时,才需要满足这些先决条件。

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

    • Azure Cosmos DB for MongoDB (vCore) 群集的私有终结点。 有关详细信息,请参阅 配置专用链接

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

允许从 Azure Cloud Shell 访问群集

首先,通过在防火墙中添加 Azure Cloud Shell 的 IP 地址,确保其可以访问 Azure Cosmos DB for MongoDB(vCore)群集。

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

  2. 转到 Azure Cosmos DB for MongoDB (vCore) 集群。

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

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

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

注释

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

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

现在,使用 Azure 门户中资源页上的“快速启动”体验,使用 MongoDB Shell 直接连接到 Azure Cosmos DB for MongoDB (vCore)。

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

  2. 然后选择 “打开 MongoDB”(vCore)shell

  3. 等待 MongoDB Shell 环境启动。

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

    注释

    如果在接受通知后遇到使用 MongoDB Shell 进行连接的问题,请确保 Azure Cloud Shell 有权访问群集。 有关详细信息,请参阅 启用对群集的访问权限

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

获取群集凭据

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

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

  2. 转到 Azure Cosmos DB for MongoDB (vCore) 集群。

  3. 选择 连接字符串 导航菜单选项。

  4. 复制或记录 连接字符串 字段中的值。

    群集页面上连接字符串选项的屏幕截图。

    重要

    门户中的连接字符串不包括密码值。 必须将 <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 Cosmos DB for MongoDB(vCore)是 Azure 原生平台即服务(PaaS)服务。

执行测试查询

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

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

    db.runCommand({connectionStatus: 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)