Dela via


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.

Kommentar

Exempelkodfragmenten är tillgängliga på GitHub som ett Python-projekt.

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

Skapa en ny Python-app

  1. Skapa en ny tom mapp med önskad terminal och ändra katalogen till mappen.

    Kommentar

    Om du bara vill ha den färdiga koden laddar du ned eller förgrenar och klonar exempelkodfragmentlagringsplatsen som har det fullständiga exemplet. Du kan också git clone använda lagringsplatsen i Azure Cloud Shell för att gå igenom stegen som visas i den här snabbstarten.

  2. 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
    
  3. 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.

  1. Skapa en gränssnittsvariabel för resourceGroupName.

    # Variable for resource group name
    resourceGroupName="msdocs-cosmos"
    
  2. 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

  1. 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 
    
  2. 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

  1. 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
    
  2. 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.

Diagram över Azure Cosmos DB DB-hierarkin, inklusive 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.