Condividi tramite


Collegarsi ad Azure DocumentDB usando la shell MongoDB

MongoDB Shell (mongosh) è un ambiente JavaScript e Node.js per interagire con le distribuzioni mongoDB. Si tratta di uno strumento comune della community per testare le query e interagire con i dati nel cluster Di Azure DocumentDB. Questo articolo illustra come connettersi a un cluster di Azure DocumentDB usando MongoDB Shell.

Prerequisiti

  • Una sottoscrizione di Azure

  • Un cluster Di Azure DocumentDB esistente

Ottenere le credenziali del cluster

Ottenere la stringa di connessione necessaria per connettersi a questo cluster.

  1. Accedere al portale di Azure (https://portal.azure.com).

  2. Passare al cluster Azure DocumentDB esistente.

Ottenere le credenziali usate per connettersi al cluster.

  1. Nella pagina del cluster selezionare l'opzione Stringhe di connessione nel menu della risorsa.

  2. Nella sezione Stringhe di connessione copiare o registrare il valore dal campo Stringa di connessione .

Screenshot che mostra l'opzione delle stringhe di connessione.

Importante

La stringa di connessione nel portale non include il valore della password. È necessario sostituire il <password> segnaposto con le credenziali immesse al momento della creazione del cluster o immettere la password in modo interattivo.

Connettersi con l'autenticazione interattiva delle password

Connettersi al cluster usando la shell mongoDB con una stringa di connessione che non include una password. Usare il prompt interattivo della password per immettere la password come parte dei passaggi di connessione.

  1. Aprire un terminale.

  2. Connettersi immettendo la password nel prompt della shell mongoDB. Per questo passaggio, usare una stringa di connessione senza la password.

    mongosh "mongodb+srv://<username>@<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    
  3. Dopo aver specificato la password e aver completato l'autenticazione, osservare l'avviso visualizzato

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

    Suggerimento

    È possibile ignorare questo avviso. Questo avviso viene generato perché la stringa di connessione contiene cosmos.azure. Azure DocumentDB è un'offerta PaaS (Platform as a Service) nativa di Azure.

  4. Uscire dal contesto della shell.

Connettersi usando la stringa di connessione e la password

Connettersi ora al cluster dalla shell mongoDB con una stringa di connessione e parametri che includono una password.

  1. Connettersi usando una stringa di connessione e gli argomenti --username e --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. Dopo aver specificato la password e aver completato l'autenticazione, osservare l'avviso visualizzato.

    ------
       Warning: Non-Genuine MongoDB Detected
       This server or service appears to be an emulation of MongoDB rather than an official MongoDB product.
    ------
    

    Suggerimento

    È possibile ignorare questo avviso. Questo avviso viene generato perché la stringa di connessione contiene cosmos.azure. Azure DocumentDB è un'offerta PaaS (Platform as a Service) nativa di Azure.

Eseguire query di test

Verificare di essere connessi correttamente al cluster eseguendo una serie di comandi e query di test.

  1. Controllare lo stato della connessione eseguendo il connectionStatus comando .

    db.runCommand({connectionStatus: 1})
    
    {
      ...
      ok: 1
    }
    
  2. Elencare i database nel cluster.

    show dbs
    
  3. Passare a un database specifico. Sostituire il <database-name> segnaposto con il nome di qualsiasi database nel cluster.

    use <database-name>
    

    Suggerimento

    Ad esempio, se il nome del database è inventory, il comando sarà use inventory.

  4. Elencare le raccolte all'interno del database.

    show collections
    
  5. Trovare i primi cinque elementi all'interno di una raccolta specifica. Sostituire il segnaposto <collection-name> con il nome di una raccolta nel cluster.

    db.<collection-name>.find().limit(5)
    

    Suggerimento

    Ad esempio, se il nome della raccolta è equipment, il comando sarà db.equipment.find().limit(5).