Wprowadzenie do usługi Azure Cosmos DB dla bazy danych MongoDB i języka Python

DOTYCZY: Mongodb

W tym artykule pokazano, jak nawiązać połączenie z usługą Azure Cosmos DB dla bazy danych MongoDB przy użyciu pakietu sterowników PyMongo. Po nawiązaniu połączenia można wykonywać operacje na bazach danych, kolekcjach i dokumentach.

Uwaga

Przykładowe fragmenty kodu są dostępne w witrynie GitHub jako projekt języka Python.

W tym artykule pokazano, jak komunikować się z interfejsem API usługi Azure Cosmos DB dla bazy danych MongoDB przy użyciu jednego z sterowników klienta bazy danych MongoDB typu open source dla języka Python, PyMongo.

Wymagania wstępne

Tworzenie nowej aplikacji w języku Python

  1. Utwórz nowy pusty folder przy użyciu preferowanego terminalu i zmień katalog na folder.

    Uwaga

    Jeśli chcesz po prostu gotowy kod, pobierz lub rozwidlenie i sklonuj przykładowe repozytorium fragmentów kodu, które zawiera pełny przykład. Repozytorium można również git clone wykonać w usłudze Azure Cloud Shell, aby zapoznać się z krokami przedstawionymi w tym przewodniku Szybki start.

  2. Utwórz plik requirements.txt zawierający listę pakietów PyMongo i python-dotenv. Pakiet dotenv służy do odczytywania zmiennych środowiskowych z pliku podczas programowania lokalnego .env .

    # requirements.txt
    pymongo
    python-dotenv
    
  3. Utwórz środowisko wirtualne i zainstaluj pakiety.

    # py -3 uses the global python interpreter. You can also use python3 -m venv .venv.
    py -3 -m venv .venv
    source .venv/Scripts/activate   
    pip install -r requirements.txt
    

Połączenie za pomocą sterownika PyMongo do usługi Azure Cosmos DB dla bazy danych MongoDB

Aby nawiązać połączenie ze sterownikiem PyMongo z usługą Azure Cosmos DB, utwórz wystąpienie obiektu MongoClient . Ta klasa jest punktem wyjścia do wykonywania wszystkich operacji względem baz danych.

Najbardziej typowy konstruktor dla bazy danych MongoClient wymaga tylko parametru host , który w tym artykule jest ustawiony na zmienną COSMOS_CONNECTION_STRING środowiskową. Istnieją inne parametry opcjonalne i parametry słowa kluczowego, których można użyć w konstruktorze. Wiele parametrów opcjonalnych można również określić za pomocą parametru host . Jeśli ta sama opcja jest przekazywana z parametrem host i jako parametr, parametr ma pierwszeństwo.

Zapoznaj się z przewodnikiem rozwiązywania problemów z połączeniem.

Uzyskiwanie nazwy zasobu

W poniższych poleceniach jako nazwę grupy zasobów jest wyświetlana nazwa msdocs-cosmos . Zmień nazwę zgodnie z potrzebami w danej sytuacji.

  1. Utwórz zmienną powłoki dla właściwości resourceGroupName.

    # Variable for resource group name
    resourceGroupName="msdocs-cosmos"
    
  2. az cosmosdb list Użyj polecenia , aby pobrać nazwę pierwszego konta usługi Azure Cosmos DB w grupie zasobów i zapisać je w zmiennej powłoki accountName.

    # Retrieve most recently created account name
    accountName=$(
        az cosmosdb list \
            --resource-group $resourceGroupName \
            --query "[0].name" \
            --output tsv
    )
    

Pobieranie parametrów połączenia

  1. Znajdź interfejs API dla bazy danych MongoDB parametry połączenia z listy parametry połączenia dla konta za az cosmosdb keys list pomocą polecenia .

    az cosmosdb keys list --type connection-strings \
        --resource-group $resourceGroupName \
        --name $accountName 
    
  2. Zapisz wartości KLUCZ PODSTAWOWY. Te poświadczenia będą używane później.

Skonfiguruj zmienne środowiskowe

Aby użyć wartości PARAMETRY POŁĄCZENIA w kodzie, ustaw tę wartość w środowisku lokalnym, w którym uruchomiono aplikację. Aby ustawić zmienną środowiskową, użyj preferowanego terminalu, aby uruchomić następujące polecenia:

$env:COSMOS_CONNECTION_STRING = "<cosmos-connection-string>"

Tworzenie elementu MongoClient przy użyciu parametry połączenia

  1. Dodaj zależności, aby odwoływać się do pakietów PyMongo i python-dotenv .

    import os
    import sys
    
    import pymongo
    from dotenv import load_dotenv
    
  2. Zdefiniuj nowe wystąpienie MongoClient klasy przy użyciu konstruktora i parametry połączenia odczytanego ze zmiennej środowiskowej.

    load_dotenv()
    CONNECTION_STRING = os.environ.get("COSMOS_CONNECTION_STRING")
    client = pymongo.MongoClient(CONNECTION_STRING)
    
    for prop, value in vars(client.options).items():
        print("Property: {}: Value: {} ".format(prop, value))
    

Aby uzyskać więcej informacji na temat różnych sposobów tworzenia MongoClient wystąpienia, zobacz Making a Połączenie ion with MongoClient (Tworzenie Połączenie ion za pomocą klasy MongoClient).

Zamykanie połączenia z klientem MongoClient

Po zakończeniu pracy aplikacji z połączeniem pamiętaj, aby ją zamknąć. To .close() wywołanie powinno być wykonywane po wykonaniu wszystkich wywołań bazy danych.

client.close()

Używanie klas klientów bazy danych MongoDB z usługą Azure Cosmos DB dla interfejsu API dla bazy danych MongoDB

Przed rozpoczęciem tworzenia aplikacji przyjrzyjmy się hierarchii zasobów w usłudze Azure Cosmos DB. Usługa Azure Cosmos DB ma określony model obiektów używany do tworzenia zasobów i uzyskiwania do ich dostępu. Usługa Azure Cosmos DB tworzy zasoby w hierarchii składającej się z kont, baz danych, kolekcji i dokumentów.

Diagram of the Azure Cosmos DB DB hierarchy including accounts, databases, collections, and docs.

Diagram hierarchiczny przedstawiający konto usługi Azure Cosmos DB u góry. Konto ma dwa podrzędne węzły bazy danych. Jeden z węzłów bazy danych zawiera dwa podrzędne węzły kolekcji. Drugi węzeł bazy danych zawiera jeden podrzędny węzeł kolekcji. Ten węzeł pojedynczej kolekcji ma trzy podrzędne węzły dokumentu.

Każdy typ zasobu jest reprezentowany przez co najmniej jedną skojarzona klasę języka Python. Oto lista najpopularniejszych klas:

  • MongoClient — pierwszym krokiem podczas pracy z rozwiązaniem PyMongo jest utworzenie klienta MongoClient w celu nawiązania połączenia z interfejsem API usługi Azure Cosmos DB dla bazy danych MongoDB. Obiekt klienta służy do konfigurowania i wykonywania żądań względem usługi.

  • Baza danych — interfejs API usługi Azure Cosmos DB dla bazy danych MongoDB może obsługiwać co najmniej jedną niezależną bazę danych.

  • Kolekcja — baza danych może zawierać co najmniej jedną kolekcję. Kolekcja jest grupą dokumentów przechowywanych w bazie danych MongoDB i może być uważana za mniej więcej równoważną tabeli w relacyjnej bazie danych.

  • Dokument — dokument jest zestawem par klucz-wartość. Dokumenty mają schemat dynamiczny. Schemat dynamiczny oznacza, że dokumenty w tej samej kolekcji nie muszą mieć tego samego zestawu pól ani struktury. Typowe pola w dokumentach kolekcji mogą zawierać różne typy danych.

Aby dowiedzieć się więcej na temat hierarchii jednostek, zobacz artykuł Dotyczący modelu zasobów usługi Azure Cosmos DB.

Zobacz też

Następne kroki

Po nawiązaniu połączenia z kontem interfejsu API dla bazy danych MongoDB użyj następnego przewodnika, aby utworzyć bazy danych i zarządzać nimi.