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 DocumentDB 相同或有對等連接的虛擬網路中使用 Azure Cloud Shell 時才是必要的。
一個或多個現有的 Azure 虛擬網路,並設有子網用於 Azure Cloud Shell 和 Azure DocumentDB 部署。
Azure DocumentDB 叢集的私人端點。 如需詳細資訊,請參閱 設定私人連結。
Azure Cloud Shell 部署到同一或對等虛擬網路,並連接至 Azure DocumentDB 私有端點。 如需詳細資訊,請參閱將 Cloud Shell 部署至虛擬網路。
啟用從 Azure Cloud Shell 存取您的叢集
首先,確保 Azure Cloud Shell 能存取你的 Azure DocumentDB 叢集,允許其 IP 位址進入防火牆。
登入 Azure 入口網站 (https://portal.azure.com)。
請導航至 Azure DocumentDB 叢集。
從導覽功能表中選取 網路 。
在 [公用存取] 區段內的 [網路] 頁面上,選取 [+ 新增 Azure Cloud Shell IP] 選項,以自動將目前的 IP 位址新增至允許的清單。
選取 [儲存] 以套用變更。
備註
若要確保連線,請確定允許您所在區域的特定 IP 位址。 欲了解更多資訊,請參閱 Azure DocumentDB 的 IP 位址。
從快速入門中使用 Azure Cloud Shell 進行連線
若要直接使用 MongoDB Shell 連接 Azure DocumentDB,請使用 Azure 入口網站資源頁面上的快速啟動體驗。
在叢集資源頁面中,從導覽功能表中選取 [ 快速入門 (預覽版)] 。
接著,選擇 Open MongoDB shell。
等待 MongoDB Shell 環境啟動。
環境準備就緒後,輸入 Y 以接受通知。
備註
如果您在接受通知之後,使用 MongoDB Shell 連線時遇到問題,請確定 Azure Cloud Shell 可以存取您的叢集。
現在,輸入您的密碼以將叢集連線至 Cloud Shell。
取得叢集認證
取得連線到此叢集所需的連接字串。
登入 Azure 入口網站 (https://portal.azure.com)。
請前往現有的 Azure DocumentDB 叢集。
取得你用來連接叢集的憑證。
在叢集頁面,選擇資源選單中的 連線字串 選項。
在 Connection 字串 區塊,複製或記錄 Connection 字串 欄位的值。
這很重要
入口網站中的連接字串不包含密碼值。 您必須將 <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)。