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
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Python 3.8 nebo novější
- Rozhraní příkazového řádku Azure (CLI) nebo Azure PowerShell
- Prostředek Azure Cosmos DB pro MongoDB
Vytvoření nové aplikace v Pythonu
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.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
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.
Vytvořte proměnnou prostředí pro resourceGroupName.
# Variable for resource group name resourceGroupName="msdocs-cosmos"
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
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
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
Přidejte závislosti pro odkazy na balíčky PyMongo a python-dotenv .
import os import sys import pymongo from dotenv import load_dotenv
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ů.
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í.