Sdílet prostřednictvím


Začínáme se službou Azure Cosmos DB pro MongoDB a Python

PLATÍ PRO: MongoDB

V tomto článku se dozvíte, jak se připojit ke službě Azure Cosmos DB pro MongoDB pomocí balíčku ovladače PyMongo. Po připojení můžete provádět operace s databázemi, kolekcemi a dokumenty.

Poznámka:

Ukázkové fragmenty kódu jsou k dispozici na GitHubu jako projekt Pythonu.

Tento článek ukazuje, jak komunikovat s rozhraním API služby Azure Cosmos DB pro MongoDB pomocí některého z opensourcových klientských ovladačů MongoDB pro Python, PyMongo.

Požadavky

Vytvoření nové aplikace v Pythonu

  1. Vytvořte novou prázdnou složku pomocí upřednostňovaného terminálu a změňte adresář na složku.

    Poznámka:

    Pokud chcete jenom hotový kód, stáhněte nebo fork a naklonujte úložiště ukázkových fragmentů kódu, které obsahuje celý příklad. Úložiště můžete také git clone v Azure Cloud Shellu projít postupem uvedeným v tomto rychlém startu.

  2. Vytvořte soubor requirements.txt se seznamem balíčků PyMongo a python-dotenv. Balíček dotenv se používá ke čtení proměnných prostředí ze .env souboru během místního vývoje.

    # requirements.txt
    pymongo
    python-dotenv
    
  3. Vytvořte virtuální prostředí a nainstalujte balíčky.

    # 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
    

Připojení pomocí ovladače PyMongo ke službě Azure Cosmos DB pro MongoDB

Pokud se chcete připojit pomocí ovladače PyMongo ke službě Azure Cosmos DB, vytvořte instanci objektu MongoClient . Tato třída je výchozím bodem pro provádění všech operací s databázemi.

Nejběžnější konstruktor pro MongoClient vyžaduje pouze host parametr, který je v tomto článku nastavený na proměnnou COSMOS_CONNECTION_STRING prostředí. V konstruktoru můžete použít další volitelné parametry a parametry klíčových slov. Mnoho volitelných parametrů lze také zadat pomocí parametru host . Pokud je stejná možnost předána s parametrem host a jako parametr, má přednost parametr.

Informace o problémech s připojením najdete v průvodci odstraňováním potíží.

Získání názvu prostředku

V následujících příkazech se jako název skupiny prostředků zobrazí msdocs-cosmos . Změňte název podle potřeby pro vaši situaci.

  1. Vytvořte proměnnou prostředí pro resourceGroupName.

    # Variable for resource group name
    resourceGroupName="msdocs-cosmos"
    
  2. az cosmosdb list Pomocí příkazu načtěte název prvního účtu služby Azure Cosmos DB ve vaší skupině prostředků a uložte ho do proměnné prostředí accountName.

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

Načtení připojovacího řetězce

  1. V seznamu připojovací řetězec pro účet pomocí az cosmosdb keys list příkazu vyhledejte rozhraní API pro MongoDB připojovací řetězec.

    az cosmosdb keys list --type connection-strings \
        --resource-group $resourceGroupName \
        --name $accountName 
    
  2. Poznamenejte si hodnoty PRIMÁRNÍHO KLÍČE . Tyto přihlašovací údaje použijete později.

Konfigurace proměnných prostředí

Pokud chcete použít hodnoty CONNECTION STRING v kódu, nastavte tuto hodnotu v místním prostředí, ve kterém je aplikace spuštěná. Pokud chcete nastavit proměnnou prostředí, použijte upřednostňovaný terminál a spusťte následující příkazy:

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

Vytvoření MongoClient pomocí připojovací řetězec

  1. Přidejte závislosti pro odkazy na balíčky PyMongo a python-dotenv .

    import os
    import sys
    
    import pymongo
    from dotenv import load_dotenv
    
  2. Definujte novou instanci MongoClient třídy pomocí konstruktoru a připojovací řetězec číst z proměnné prostředí.

    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))
    

Další informace o různých způsobech vytvoření MongoClient instance najdete v tématu Vytvoření připojení pomocí MongoClient.

Zavřete připojení MongoClient.

Po dokončení připojení nezapomeňte aplikaci zavřít. Toto .close() volání by mělo být po provedení všech volání databáze.

client.close()

Použití klientských tříd MongoDB se službou Azure Cosmos DB pro rozhraní API pro MongoDB

Než začnete vytvářet aplikaci, podívejme se na hierarchii prostředků ve službě Azure Cosmos DB. Azure Cosmos DB má konkrétní objektový model, který se používá k vytváření a přístupu k prostředkům. Azure Cosmos DB vytváří prostředky v hierarchii, které se skládají z účtů, databází, kolekcí a dokumentů.

Diagram hierarchie Azure Cosmos DB pro MongoDB, včetně účtů, databází, kolekcí a dokumentů

Hierarchický diagram znázorňující účet Služby Azure Cosmos DB pro MongoDB v horní části Účet má dva podřízené databázové uzly. Jeden z databázových uzlů zahrnuje dva podřízené uzly kolekce. Druhý databázový uzel obsahuje jeden podřízený uzel kolekce. Tento uzel jedné kolekce má tři podřízené uzly dokumentace.

Každý typ prostředku je reprezentován jednou nebo více přidruženými třídami Pythonu. Tady je seznam nejběžnějších tříd:

  • MongoClient – prvním krokem při práci s PyMongo je vytvoření MongoClientu pro připojení k rozhraní API služby Azure Cosmos DB pro MongoDB. Objekt klienta slouží ke konfiguraci a spouštění požadavků na službu.

  • Databáze – Rozhraní API služby Azure Cosmos DB pro MongoDB může podporovat jednu nebo více nezávislých databází.

  • Kolekce – Databáze může obsahovat jednu nebo více kolekcí. Kolekce je skupina dokumentů uložených v MongoDB a dá se považovat za zhruba ekvivalent tabulky v relační databázi.

  • Dokument – Dokument je sada párů klíč-hodnota. Dokumenty mají dynamické schéma. Dynamické schéma znamená, že dokumenty ve stejné kolekci nemusí mít stejnou sadu polí nebo struktury. Běžná pole v dokumentech kolekce můžou obsahovat různé typy dat.

Další informace o hierarchii entit najdete v článku o modelu prostředků služby Azure Cosmos DB.

Viz také

Další kroky

Teď, když jste se připojili k účtu ROZHRANÍ API pro MongoDB, použijte další příručku k vytváření a správě databází.