你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
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 订阅服务
- 如果没有 Azure 订阅,请创建 一个免费帐户
现有的 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 群集。
登录到 Azure 门户 (https://portal.azure.com)。
导航到 Azure DocumentDB 群集。
从导航菜单中选择 “网络 ”。
在“公共访问”部分的“网络”页上,选择“+ 添加 Azure Cloud Shell IP”选项,自动将当前 IP 地址添加到允许的列表。
选择保存以应用更改。
注释
为了确保网络连通性,请确保允许您的区域的特定 IP 地址。 有关详细信息,请参阅 Azure DocumentDB 的 IP 地址。
通过快速入门指南使用 Azure Cloud Shell 连接
若要使用 MongoDB Shell 直接连接到 Azure DocumentDB,请使用 Azure 门户中资源页上提供的快速启动体验。
在群集资源页中,从导航菜单中选择“快速启动”(预览)。
然后选择 “打开 MongoDB shell”。
等待 MongoDB Shell 环境启动。
环境准备就绪后,输入 Y 接受通知。
注释
如果在接受通知后遇到使用 MongoDB Shell 进行连接的问题,请确保 Azure Cloud Shell 有权访问群集。
现在,输入密码,将群集连接到 Cloud Shell。
获取群集凭据
获取连接到此群集所需的连接字符串。
登录到 Azure 门户 (https://portal.azure.com)。
导航到现有的 Azure DocumentDB 群集。
获取用于连接到群集的凭据。
在群集页上,在资源菜单中选择 “连接字符串 ”选项。
在 “连接字符串 ”部分中,复制或记录 “连接字符串 ”字段中的值。
重要
门户中的连接字符串不包括密码值。 必须将 <password> 占位符替换为创建群集时输入的凭据或以交互方式输入密码。
在 Azure Cloud Shell 中手动配置 MongoDB Shell
使用节点包管理器(npm)将 MongoDB Shell (mongosh) 客户端安装到 Azure Cloud Shell 实例。
打开配置了 Bash 脚本环境的 Azure Cloud Shell。
在本地用户目录中安装 MongoDB Shell 版本 1 。
npm install mongosh@1等待安装完成。
通过获取该工具的版本
mongosh来验证安装是否成功。npx mongosh --version
连接至群集
使用 MongoDB Shell,通过不包含密码的连接字符串连接到群集。 使用交互式密码提示输入密码作为连接步骤的一部分。
通过在 MongoDB Shell 提示符中输入密码进行连接。 对于此步骤,请使用没有密码的连接字符串。
npx mongosh "mongodb+srv://<username>@<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"提供密码并成功进行身份验证后,请观察出现的警告。
------ 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) 服务。
执行测试查询
通过执行一系列测试命令和查询来验证是否已成功连接到群集。
通过运行
connectionStatus命令检查连接状态。db.runCommand({connectionStatus: 1}){ ... ok: 1 }列出群集中的数据库。
show dbs切换到特定数据库。 将
<database-name>占位符替换为群集中任何数据库的名称。use <database-name>小窍门
例如,如果数据库名称为
inventory,则命令为use inventory。列出数据库中的集合。
show collections查找特定集合中的前五项。 将
<collection-name>占位符替换为群集中任何集合的名称。db.<collection-name>.find().limit(5)小窍门
例如,如果集合名称为
equipment,则命令为db.equipment.find().limit(5)。