Udostępnij przez


Nawiązywanie połączenia z usługą Azure DocumentDB przy użyciu powłoki MongoDB

Powłoka MongoDB (mongosh) to środowisko JavaScript i Node.js do interakcji z wdrożeniami bazy danych MongoDB. Jest to popularne narzędzie społeczności do testowania zapytań i interakcji z danymi w klastrze usługi Azure DocumentDB. W tym artykule wyjaśniono, jak nawiązać połączenie z klastrem usługi Azure DocumentDB przy użyciu powłoki MongoDB.

Wymagania wstępne

  • Subskrypcja platformy Azure

  • Istniejący klaster usługi Azure DocumentDB

Pobieranie poświadczeń klastra

Pobierz parametry połączenia potrzebne do nawiązania połączenia z tym klastrem.

  1. Zaloguj się do witryny Azure Portal (https://portal.azure.com).

  2. Przejdź do istniejącego klastra usługi Azure DocumentDB.

Pobierz poświadczenia używane do nawiązania połączenia z klastrem.

  1. Na stronie klastra wybierz opcję Parametry połączenia w menu zasobów.

  2. W sekcji Parametry połączenia skopiuj lub zarejestruj wartość z pola Parametry połączenia .

Zrzut ekranu przedstawiający opcję parametrów połączenia.

Ważne

Parametry połączenia w portalu nie zawierają wartości hasła. Musisz zastąpić element zastępczy <password> poświadczeniami, które wprowadziłeś podczas tworzenia klastra, lub wprowadzić hasło interaktywnie.

Łączenie się za pomocą interaktywnego uwierzytelniania hasłem

Połącz się z klastrem przy użyciu powłoki MongoDB z parametrami połączenia, które nie zawierają hasła. Użyj interakcyjnego monitu o hasło, aby wprowadzić hasło w ramach kroków połączenia.

  1. Otwórz terminal.

  2. Połącz się, wprowadzając hasło w wierszu poleceń MongoDB Shell. W tym kroku użyj parametrów połączenia bez hasła.

    mongosh "mongodb+srv://<username>@<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    
  3. Po podaniu hasła i pomyślnym uwierzytelnieniu zwróć uwagę na wyświetlone ostrzeżenie

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

    Wskazówka

    Możesz bezpiecznie zignorować to ostrzeżenie. To ostrzeżenie jest generowane, ponieważ łańcuch połączenia zawiera cosmos.azure. Azure DocumentDB to natywna oferta platformy Azure jako usługi (PaaS).

  4. Wyjdź z kontekstu powłoki.

Nawiązywanie połączenia przy użyciu parametrów połączenia i hasła

Teraz połącz się z klastrem z poziomu powłoki MongoDB, używając ciągu połączenia i parametrów zawierających hasło.

  1. Nawiąż połączenie przy użyciu parametrów połączenia i argumentów --username i --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. Po podaniu hasła i pomyślnym uwierzytelnieniu zwróć uwagę na wyświetlone ostrzeżenie.

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

    Wskazówka

    Możesz bezpiecznie zignorować to ostrzeżenie. To ostrzeżenie jest generowane, ponieważ łańcuch połączenia zawiera cosmos.azure. Azure DocumentDB to natywna oferta platformy Azure jako usługi (PaaS).

Wykonywanie zapytań testowych

Sprawdź, czy klaster został pomyślnie połączony, wykonując serię poleceń testowych i zapytań.

  1. Sprawdź stan połączenia, uruchamiając connectionStatus polecenie .

    db.runCommand({connectionStatus: 1})
    
    {
      ...
      ok: 1
    }
    
  2. Wyświetl listę baz danych w klastrze.

    show dbs
    
  3. Przełącz się do określonej bazy danych. Zastąp <database-name> nazwą dowolnej bazy danych w klastrze.

    use <database-name>
    

    Wskazówka

    Jeśli na przykład nazwa bazy danych to inventory, polecenie to .use inventory

  4. Wyświetl listę kolekcji w bazie danych.

    show collections
    
  5. Znajdź pięć pierwszych elementów w określonej kolekcji. Zastąp symbol zastępczy <collection-name> nazwą dowolnej kolekcji w klastrze.

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

    Wskazówka

    Jeśli na przykład nazwa kolekcji to equipment, polecenie to .db.equipment.find().limit(5)