Kom igång med Azure Cosmos DB för MongoDB och Python
GÄLLER FÖR: MongoDB
Den här artikeln visar hur du ansluter till Azure Cosmos DB för MongoDB med hjälp av PyMongo-drivrutinspaketet. När du är ansluten kan du utföra åtgärder på databaser, samlingar och dokument.
Den här artikeln visar hur du kommunicerar med Azure Cosmos DB:s API för MongoDB med hjälp av en av MongoDB-klientdrivrutinerna med öppen källkod för Python, PyMongo.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Python 3.8+
- Azures kommandoradsgränssnitt (CLI) eller Azure PowerShell
- Azure Cosmos DB för MongoDB-resurs
Skapa en ny Python-app
Skapa en ny tom mapp med önskad terminal och ändra katalogen till mappen.
Skapa en requirements.txt fil som visar paketen PyMongo och python-dotenv . Paketet
dotenv
används för att läsa miljövariablerna från en.env
fil under den lokala utvecklingen.# requirements.txt pymongo python-dotenv
Skapa en virtuell miljö och installera paketen.
# 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
Ansluta med PyMongo-drivrutinen till Azure Cosmos DB för MongoDB
Om du vill ansluta med PyMongo-drivrutinen till Azure Cosmos DB skapar du en instans av MongoClient-objektet . Den här klassen är utgångspunkten för att utföra alla åtgärder mot databaser.
Den vanligaste konstruktorn för MongoClient kräver bara parametern host
, som i den här artikeln är inställd på COSMOS_CONNECTION_STRING
miljövariabeln. Det finns andra valfria parametrar och nyckelordsparametrar som du kan använda i konstruktorn. Många av de valfria parametrarna kan också anges med parametern host
. Om samma alternativ skickas in med host
och som en parameter har parametern företräde.
Se felsökningsguiden för anslutningsproblem.
Hämta resursnamn
I kommandona nedan visar vi msdocs-cosmos som resursgruppsnamn. Ändra namnet efter behov för din situation.
Skapa en gränssnittsvariabel för resourceGroupName.
# Variable for resource group name resourceGroupName="msdocs-cosmos"
az cosmosdb list
Använd kommandot för att hämta namnet på det första Azure Cosmos DB-kontot i resursgruppen och lagra det i variabeln accountName-gränssnittet.# Retrieve most recently created account name accountName=$( az cosmosdb list \ --resource-group $resourceGroupName \ --query "[0].name" \ --output tsv )
Hämta anslutningssträngen
Leta upp API:et för MongoDB-niska veze från listan över niska veze för kontot med
az cosmosdb keys list
kommandot .az cosmosdb keys list --type connection-strings \ --resource-group $resourceGroupName \ --name $accountName
Registrera primärnyckelvärdena. Du använder dessa autentiseringsuppgifter senare.
Konfigurera miljövariabler
Om du vill använda VÄRDENA FÖR ANSLUTNINGSSTRÄNG i koden anger du det här värdet i den lokala miljö som kör programmet. Om du vill ange miljövariabeln använder du önskad terminal för att köra följande kommandon:
$env:COSMOS_CONNECTION_STRING = "<cosmos-connection-string>"
Skapa MongoClient med niska veze
Lägg till beroenden för att referera till PyMongo - och python-dotenv-paketen .
import os import sys import pymongo from dotenv import load_dotenv
Definiera en ny instans av
MongoClient
klassen med konstruktorn och niska veze läsa från en miljövariabel.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))
Mer information om olika sätt att skapa en MongoClient
instans finns i Skapa en anslutning med MongoClient.
Stäng MongoClient-anslutningen
När programmet är klart med anslutningen ska du komma ihåg att stänga det. Det .close()
anropet ska ske när alla databasanrop har gjorts.
client.close()
Använda MongoDB-klientklasser med Azure Cosmos DB för API för MongoDB
Innan du börjar skapa programmet ska vi titta på resurshierarkin i Azure Cosmos DB. Azure Cosmos DB har en specifik objektmodell som används för att skapa och komma åt resurser. Azure Cosmos DB skapar resurser i en hierarki som består av konton, databaser, samlingar och dokument.
Hierarkiskt diagram som visar ett Azure Cosmos DB DB-konto högst upp. Kontot har två underordnade databasnoder. En av databasnoderna innehåller två underordnade samlingsnoder. Den andra databasnoden innehåller en enda underordnad samlingsnod. Den enda samlingsnoden har tre underordnade doc-noder.
Varje typ av resurs representeras av en eller flera associerade Python-klasser. Här är en lista över de vanligaste klasserna:
MongoClient – Det första steget när du arbetar med PyMongo är att skapa en MongoClient för att ansluta till Azure Cosmos DB:s API för MongoDB. Klientobjektet används för att konfigurera och köra begäranden mot tjänsten.
Databas – Azure Cosmos DB:s API för MongoDB kan stödja en eller flera oberoende databaser.
Samling – En databas kan innehålla en eller flera samlingar. En samling är en grupp dokument som lagras i MongoDB och kan betraktas som ungefär samma som en tabell i en relationsdatabas.
Dokument – Ett dokument är en uppsättning nyckel/värde-par. Dokument har dynamiskt schema. Dynamiskt schema innebär att dokument i samma samling inte behöver ha samma uppsättning fält eller struktur. Och vanliga fält i en samlings dokument kan innehålla olika typer av data.
Mer information om entitetshierarkin finns i artikeln Azure Cosmos DB-resursmodell .
Se även
Nästa steg
Nu när du har anslutit till ett API för MongoDB-konto använder du nästa guide för att skapa och hantera databaser.