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 叢集。
取得你用來連接叢集的憑證。
在叢集頁面,選擇資源選單中的 連線字串 選項。
在 Connection 字串 區塊,複製或記錄 Connection 字串 欄位的值。
這很重要
入口網站中的連接字串不包含密碼值。 您必須將 <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)。