共用方式為


連接到 Azure 文檔資料庫並使用 MongoDB Shell

MongoDB Shell (mongosh) 是用於與 MongoDB 部署互動的 JavaScript 和 Node.js 環境。 這是一個很受歡迎的社群工具,用來測試查詢並與 Azure DocumentDB 叢集中的資料互動。 本文說明如何使用 MongoDB Shell 連接 Azure DocumentDB 叢集。

先決條件

  • Azure 訂用帳戶

    • 如果您沒有 Azure 訂用帳戶,請建立 免費帳戶
  • 一個現有的 Azure DocumentDB 叢集

  • MongoDB Shell。 如需詳細資訊,請參閱 安裝 MongoDB shell

  • 允許您的用戶端連線到叢集的防火牆規則。 如需詳細資訊,請參閱 設定防火牆

取得叢集認證

取得連線到此叢集所需的連接字串。

  1. 登入 Azure 入口網站https://portal.azure.com)。

  2. 請前往現有的 Azure DocumentDB 叢集。

取得你用來連接叢集的憑證。

  1. 在叢集頁面,選擇資源選單中的 連線字串 選項。

  2. Connection 字串 區塊,複製或記錄 Connection 字串 欄位的值。

有張顯示連線字串選項的截圖。

這很重要

入口網站中的連接字串不包含密碼值。 您必須將 <password> 佔位符替換為建立叢集時輸入的憑證,或以互動方式輸入密碼。

使用互動式密碼驗證連線

使用 MongoDB Shell 搭配不包含密碼的連接字串連線至叢集。 使用互動式密碼提示輸入您的密碼,作為連線步驟的一部分。

  1. 開啟終端機。

  2. 在 MongoDB Shell 提示符中輸入密碼進行連線。 在此步驟中,請使用不含密碼的連接字串。

    mongosh "mongodb+srv://<username>@<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    
  3. 提供密碼並成功驗證後,請觀察出現的警告

    This server or service appears to be an emulation of MongoDB.
    

    小提示

    您可以放心忽略這個警告。 產生此警告是因為連接字串包含 cosmos.azure。 Azure DocumentDB 係一個原生嘅 Azure 平台即服務(PaaS)產品。

  4. 結束 Shell 環境。

使用連接字串和密碼連線

現在,使用 MongoDB Shell 連線到您的叢集,其中包含連接字串和參數 (包含密碼)。

  1. 使用連接字串以及--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>"
    
  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 DocumentDB 係一個原生嘅 Azure 平台即服務(PaaS)產品。

執行測試查詢

執行一系列測試命令和查詢,確認您已成功連線至叢集。

  1. 請執行 connectionStatus 命令以檢查您的連線狀態。

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