你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
MongoDB Shell (mongosh) 是用于与 MongoDB 部署进行交互的 JavaScript 和 Node.js 环境。 它是一种常用的社区工具,用于测试查询并与 Azure DocumentDB 群集中的数据进行交互。 本文介绍如何使用 MongoDB Shell 连接到 Azure DocumentDB 群集。
先决条件
Azure 订阅服务
- 如果没有 Azure 订阅,请创建 一个免费帐户
现有的 Azure DocumentDB 群集
- 如果没有群集,请 创建新群集
MongoDB Shell。 有关详细信息,请参阅 安装 MongoDB shell
允许客户端连接到群集的防火墙规则。 有关详细信息,请参阅 配置防火墙。
获取群集凭据
获取连接到此群集所需的连接字符串。
登录到 Azure 门户 (https://portal.azure.com)。
导航到现有的 Azure DocumentDB 群集。
获取用于连接到群集的凭据。
在群集页上,在资源菜单中选择 “连接字符串 ”选项。
在 “连接字符串 ”部分中,复制或记录 “连接字符串 ”字段中的值。
重要
门户中的连接字符串不包括密码值。 必须将 <password> 占位符替换为创建群集时输入的凭据或以交互方式输入密码。
使用交互式密码身份验证进行连接
使用 MongoDB Shell,通过不包含密码的连接字符串连接到群集。 使用交互式密码提示输入密码作为连接步骤的一部分。
打开终端。
通过在 MongoDB Shell 提示符中输入密码进行连接。 对于此步骤,请使用没有密码的连接字符串。
mongosh "mongodb+srv://<username>@<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"提供密码并成功进行身份验证后,请观察显示的警告
This server or service appears to be an emulation of MongoDB.小窍门
可以放心地忽略此警告。 之所以生成此警告,是因为连接字符串包含
cosmos.azure。 Azure DocumentDB 是 Azure 平台的 PaaS 原生产品。退出 Shell 环境。
使用连接字符串和密码进行连接
现在,使用包含密码的连接字符串和参数从 MongoDB Shell 连接到群集。
使用连接字符串以及
--username和--password参数进行连接。mongosh "mongodb+srv://<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000" --username "<username>" -password "<password>"提供密码并成功进行身份验证后,请观察出现的警告。
------ 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)。