DatabaseProxy Klass

Ett gränssnitt för att interagera med en specifik databas.

Den här klassen ska inte instansieras direkt. Använd <xref:azure.cosmos.aio.cosmos_client.CosmosClient.get_database_client> i stället metoden för att hämta en befintlig databas eller <xref:azure.cosmos.aio.cosmos_client.CosmosClient.create_database> metoden för att skapa en ny databas.

En databas innehåller en eller flera containrar som var och en kan innehålla objekt, lagrade procedurer, utlösare och användardefinierade funktioner.

En databas kan också ha associerade användare, som var och en har konfigurerats med en uppsättning behörigheter för åtkomst till vissa containrar, lagrade procedurer, utlösare, användardefinierade funktioner eller objekt.

En Azure Cosmos DB SQL API-databas har följande systemgenererade egenskaper. Dessa egenskaper är skrivskyddade:

  • _rid: Resurs-ID.

  • _ts: När resursen senast uppdaterades. Värdet är en tidsstämpel.

  • _self: Resursens unika adresserbara URI.

  • _etag: Resursetaggar som krävs för optimistisk samtidighetskontroll.

  • _colls: Den adresserbara sökvägen för samlingsresursen.

  • _users: Den adresserbara sökvägen för användarresursen.

Arv
builtins.object
DatabaseProxy

Konstruktor

DatabaseProxy(client_connection: CosmosClientConnection, id: str, properties: Dict[str, Any] = None)

Parametrar

client_connection
<xref:azure.cosmos.aio.CosmosClientConnection>
Obligatorisk

Klienten som den här databasen hämtades från.

id
str
Obligatorisk

ID (namn) för databasen.

properties
standardvärde: None

Variabler

id

Databasens ID (namn).

Metoder

create_container

Skapa en ny container med det angivna ID:t (namn).

Om det redan finns en container med det angivna ID:t utlöses en CosmosResourceExistsError.

create_container_if_not_exists

Skapa en container om den inte redan finns.

Om containern redan finns returneras de befintliga inställningarna. Obs! Den kontrollerar eller uppdaterar inte befintliga containerinställningar eller erbjuder dataflöde om de skiljer sig från vad som skickades till metoden.

create_user

Skapa en ny användare i containern.

Om du vill uppdatera eller ersätta en befintlig användare använder du <xref:ContainerProxy.upsert_user> metoden .

delete_container

Ta bort en container.

delete_user

Ta bort den angivna användaren från containern.

get_container_client

Hämta en ContainerProxy för en container med angivet ID (namn).

get_throughput

Hämta objektet ThroughputProperties för den här databasen.

Om det inte redan finns några dataflödesegenskaper för databasen utlöses ett undantag.

get_user_client

Hämta en UserProxy för en användare med angivet ID.

list_containers

Visa en lista över containrarna i databasen.

list_users

Visa en lista över alla användare i containern.

query_containers

Visa en lista över egenskaperna för containrar i den aktuella databasen.

query_users

Returnera alla användare som matchar den angivna frågan.

read

Läs databasegenskaperna.

replace_container

Återställ egenskaperna för containern.

Egenskapsändringar sparas omedelbart. Alla egenskaper som inte anges återställs till standardvärdena.

replace_throughput

Ersätt dataflödet på databasnivå.

Om det inte redan finns några dataflödesegenskaper för databasen utlöses ett undantag.

replace_user

Ersätter den angivna användaren om den finns i containern.

upsert_user

Infoga eller uppdatera den angivna användaren.

Om användaren redan finns i containern ersätts den. Om användaren inte redan finns infogas den.

create_container

Skapa en ny container med det angivna ID:t (namn).

Om det redan finns en container med det angivna ID:t utlöses en CosmosResourceExistsError.

async create_container(id: str, partition_key: PartitionKey, **kwargs: Any) -> ContainerProxy

Parametrar

id
str
Obligatorisk

ID (namn) för container som ska skapas.

partition_key
PartitionKey
Obligatorisk

Partitionsnyckeln som ska användas för containern.

indexing_policy
dict[str, str]

Indexeringsprincipen som ska tillämpas på containern.

default_ttl
int

Standardtid att leva (TTL) för objekt i containern. Om objekten är ospecificerade upphör de inte att gälla.

offer_throughput
Union[int, ThroughputProperties]

Det etablerade dataflödet för det här erbjudandet.

unique_key_policy
dict[str, str]

Den unika nyckelprincip som ska tillämpas på containern.

conflict_resolution_policy
dict[str, str]

Konfliktlösningsprincipen som ska tillämpas på containern.

session_token
str

Token för användning med sessionskonsekvens.

initial_headers
dict[str, str]

Inledande rubriker som ska skickas som en del av begäran.

etag
str

Ett ETag-värde eller jokertecknet (*). Används för att kontrollera om resursen har ändrats och agera enligt villkoret som anges av parametern match_condition .

match_condition
MatchConditions

Matchningsvillkoret som ska användas på etag.

response_hook
Callable[[Dict[str, str], Dict[str, Any]], None]

En anropsbar anropad med svarsmetadata.

analytical_storage_ttl
int

TTL (Analytical Store Time to Live) för objekt i containern. Värdet None lämnar analyslagringen inaktiverad och värdet -1 aktiverar analyslagring utan TTL. Observera att analyslagring endast kan aktiveras på Synapse Link aktiverade konton.

Returer

En ContainerProxy-instans som representerar den nya containern.

Returtyp

Undantag

Det gick inte att skapa containern.

Exempel

Skapa en container med standardinställningar:


           container_name = "products"
           try:
               container = await database.create_container(
                   id=container_name, partition_key=PartitionKey(path="/productName")
               )
           except exceptions.CosmosResourceExistsError:
               container = database.get_container_client(container_name)

Skapa en container med specifika inställningar. i det här fallet en anpassad partitionsnyckel:


           customer_container_name = "customers"
           try:
               customer_container = await database.create_container(
                   id=customer_container_name,
                   partition_key=PartitionKey(path="/city"),
                   default_ttl=200,
               )
           except exceptions.CosmosResourceExistsError:
               customer_container = database.get_container_client(customer_container_name)

create_container_if_not_exists

Skapa en container om den inte redan finns.

Om containern redan finns returneras de befintliga inställningarna. Obs! Den kontrollerar eller uppdaterar inte befintliga containerinställningar eller erbjuder dataflöde om de skiljer sig från vad som skickades till metoden.

async create_container_if_not_exists(id: str, partition_key: PartitionKey, **kwargs: Any) -> ContainerProxy

Parametrar

id
str
Obligatorisk

ID (namn) för container som ska skapas.

partition_key
PartitionKey
Obligatorisk

Partitionsnyckeln som ska användas för containern.

indexing_policy
dict[str, str]

Indexeringsprincipen som ska tillämpas på containern.

default_ttl
int

Standardtid att leva (TTL) för objekt i containern. Om objekten är ospecificerade upphör de inte att gälla.

offer_throughput
Union[int, ThroughputProperties]

Det etablerade dataflödet för det här erbjudandet.

unique_key_policy
dict[str, str]

Den unika nyckelprincip som ska tillämpas på containern.

conflict_resolution_policy
dict[str, str]

Konfliktlösningsprincipen som ska tillämpas på containern.

session_token
str

Token för användning med sessionskonsekvens.

initial_headers
dict[str, str]

Inledande rubriker som ska skickas som en del av begäran.

etag
str

Ett ETag-värde eller jokertecknet (*). Används för att kontrollera om resursen har ändrats och agera enligt villkoret som anges av parametern match_condition .

match_condition
MatchConditions

Matchningsvillkoret som ska användas på etag.

response_hook
Callable[[Dict[str, str], Dict[str, Any]], None]

En anropsbar anropad med svarsmetadata.

analytical_storage_ttl
int

TTL (Analytical Store Time to Live) för objekt i containern. Värdet None lämnar analyslagringen inaktiverad och värdet -1 aktiverar analyslagring utan TTL. Observera att analyslagring endast kan aktiveras på Synapse Link aktiverade konton.

Returer

En ContainerProxy-instans som representerar den nya containern.

Returtyp

Undantag

Det gick inte att skapa containern.

create_user

Skapa en ny användare i containern.

Om du vill uppdatera eller ersätta en befintlig användare använder du <xref:ContainerProxy.upsert_user> metoden .

async create_user(body: Dict[str, Any], **kwargs: Any) -> UserProxy

Parametrar

body
Dict[str, Any]
Obligatorisk

Ett diktaliknande objekt med en ID-nyckel och ett värde som representerar användaren som ska skapas. Användar-ID:t måste vara unikt i databasen och bestå av högst 255 tecken.

response_hook
Callable[[Dict[str, str], Dict[str, Any]], None]

En anropsbar anropad med svarsmetadata.

Returer

En UserProxy-instans som representerar den nya användaren.

Returtyp

Undantag

Om det inte gick att skapa den angivna användaren.

Exempel

Skapa en databasanvändare:


           try:
               await database.create_user(dict(id="Walter Harp"))
               print("Created user Walter Harp.")
           except exceptions.CosmosResourceExistsError:
               print("A user with that ID already exists.")
           except exceptions.CosmosHttpResponseError as failure:
               print("Failed to create user. Status code:{}".format(failure.status_code))

delete_container

Ta bort en container.

async delete_container(container: str | ContainerProxy | Dict[str, Any], **kwargs: Any) -> None

Parametrar

container
str eller Dict[str, Any] eller ContainerProxy
Obligatorisk

ID:t (namn) för containern som ska tas bort. Du kan antingen skicka ID:t för containern för att ta bort, en ContainerProxy instans eller en diktamen som representerar containerns egenskaper.

session_token
str

Token för användning med sessionskonsekvens.

initial_headers
dict[str, str]

Inledande rubriker som ska skickas som en del av begäran.

etag
str

Ett ETag-värde eller jokertecknet (*). Används för att kontrollera om resursen har ändrats och agera enligt villkoret som anges av parametern match_condition .

match_condition
MatchConditions

Matchningsvillkoret som ska användas på etag.

response_hook
Callable[[Dict[str, str], None], None]

En anropsbar anropad med svarsmetadata.

Returtyp

Undantag

Om containern inte kunde tas bort.

delete_user

Ta bort den angivna användaren från containern.

async delete_user(user: str | UserProxy | Dict[str, Any], **kwargs: Any) -> None

Parametrar

user
Union[str, Dict[str, Any], UserProxy]
Obligatorisk

ID:t (namn), diktat som representerar egenskaperna eller UserProxy instansen för den användare som ska tas bort.

response_hook
Callable[[Dict[str, str], None], None]

En anropsbar anropad med svarsmetadata.

Returtyp

Undantag

Användaren har inte tagits bort.

Användaren finns inte i containern.

get_container_client

Hämta en ContainerProxy för en container med angivet ID (namn).

get_container_client(container: str | ContainerProxy | Dict[str, Any]) -> ContainerProxy

Parametrar

container
Union[str, Dict[str, Any], ContainerProxy]
Obligatorisk

ID :t (namn), diktamen som representerar egenskaperna eller ContainerProxy instansen av containern som ska hämtas.

Returer

En ContainerProxy-instans som representerar containern.

Returtyp

Undantag

Det gick inte att skapa containern.

Exempel

Hämta en befintlig container, hantera ett fel om det påträffas:


           database = client.get_database_client(database_name)
           container = database.get_container_client(container_name)

get_throughput

Hämta objektet ThroughputProperties för den här databasen.

Om det inte redan finns några dataflödesegenskaper för databasen utlöses ett undantag.

async get_throughput(**kwargs: Any) -> ThroughputProperties

Parametrar

response_hook
Callable[[Dict[str, str], List[Dict[str, Any]]], None]

En anropsbar anropad med svarsmetadata.

Returer

DataflödeEgenskaper för databasen.

Returtyp

Undantag

Det finns inga dataflödesegenskaper för databasen eller så gick det inte att hämta dataflödesegenskaperna.

get_user_client

Hämta en UserProxy för en användare med angivet ID.

get_user_client(user: str | UserProxy | Dict[str, Any]) -> UserProxy

Parametrar

user
Union[str, Dict[str, Any], UserProxy]
Obligatorisk

ID :t (namn), diktat som representerar egenskaperna eller UserProxy instansen av användaren som ska hämtas.

Returer

En UserProxy-instans som representerar den hämtade användaren.

Returtyp

Undantag

Det gick inte att skapa containern.

list_containers

Visa en lista över containrarna i databasen.

list_containers(**kwargs) -> AsyncItemPaged[Dict[str, Any]]

Parametrar

max_item_count
int

Maximalt antal objekt som ska returneras i uppräkningsåtgärden.

session_token
str

Token för användning med sessionskonsekvens.

initial_headers
dict[str, str]

Inledande rubriker som ska skickas som en del av begäran.

response_hook
Callable[[Dict[str, str], <xref:AsyncItemPaged>[Dict[str, Any]]], None]

En anropsbar anropad med svarsmetadata.

Returer

AsyncItemPaged med containeregenskaper (dikteringar).

Returtyp

<xref:AsyncItemPaged>[Dict[str, Any]]

Undantag

Det gick inte att skapa containern.

Exempel

Visa en lista över alla containrar i databasen:


           database = client.get_database_client(database_name)
           async for container in database.list_containers():
               print("Container ID: {}".format(container['id']))

list_users

Visa en lista över alla användare i containern.

list_users(**kwargs: Any) -> AsyncItemPaged[Dict[str, Any]]

Parametrar

max_item_count
int

Maximalt antal användare som ska returneras i uppräkningsåtgärden.

response_hook
Callable[[Dict[str, str], <xref:AsyncItemPaged>[Dict[str, Any]]], None]

En anropsbar anropad med svarsmetadata.

Returer

AsyncItemPaged med användaregenskaper (dikteringar).

Returtyp

<xref:AsyncItemPaged>[Dict[str, Any]]

Undantag

Det gick inte att skapa containern.

query_containers

Visa en lista över egenskaperna för containrar i den aktuella databasen.

query_containers(**kwargs: Any) -> AsyncItemPaged[Dict[str, Any]]

Parametrar

query
Union[str, Dict[str, Any]]

Azure Cosmos DB SQL-frågan som ska köras.

parameters
Optional[List[Dict[str, Any]]]

Valfri matris med parametrar i frågan. Varje parameter är en dict() med "namn" och "värde"-nycklar.

max_item_count
int

Maximalt antal objekt som ska returneras i uppräkningsåtgärden.

session_token
str

Token för användning med sessionskonsekvens.

initial_headers
dict[str, str]

Inledande rubriker som ska skickas som en del av begäran.

response_hook
Callable[[Dict[str, str], <xref:AsyncItemPaged>[Dict[str, Any]]], None]

En anropsbar anropad med svarsmetadata.

Returer

AsyncItemPaged med containeregenskaper (dikteringar).

Returtyp

<xref:AsyncItemPaged>[Dict[str, Any]]

Undantag

Det gick inte att skapa containern.

query_users

Returnera alla användare som matchar den angivna frågan.

query_users(query: str | Dict[str, Any], **kwargs: Any) -> AsyncItemPaged[Dict[str, Any]]

Parametrar

query
Union[str, Dict[str, Any]]
Obligatorisk

Azure Cosmos DB SQL-frågan som ska köras.

parameters
Optional[List[Dict[str, Any]]]

Valfri matris med parametrar i frågan. Varje parameter är en dict() med "namn" och "värde"-nycklar. Ignoreras om ingen fråga har angetts.

max_item_count
int

Maximalt antal användare som ska returneras i uppräkningsåtgärden.

response_hook
Callable[[Dict[str, str], <xref:AsyncItemPaged>[Dict[str, Any]]], None]

En anropsbar anropad med svarsmetadata.

Returer

AsyncItemPaged med användaregenskaper (dikteringar).

Returtyp

<xref:AsyncItemPaged>[Dict[str, Any]]

Undantag

Det gick inte att skapa containern.

read

Läs databasegenskaperna.

async read(**kwargs: Any) -> Dict[str, Any]

Parametrar

session_token
str

Token för användning med sessionskonsekvens.

initial_headers
dict[str, str]

Inledande rubriker som ska skickas som en del av begäran.

response_hook
Callable[[Dict[str, str], Dict[str, Any]], None]

En anropsbar anropad med svarsmetadata.

Returer

En diktamen som representerar databasegenskaperna

Returtyp

Undantag

Om den angivna databasen inte kunde hämtas.

replace_container

Återställ egenskaperna för containern.

Egenskapsändringar sparas omedelbart. Alla egenskaper som inte anges återställs till standardvärdena.

async replace_container(container: str | ContainerProxy | Dict[str, Any], partition_key: PartitionKey, **kwargs: Any) -> ContainerProxy

Parametrar

container
Union[str, Dict[str, Any], ContainerProxy]
Obligatorisk

ID:t (namn), diktamen som representerar egenskaperna eller ContainerProxy instansen av containern som ska ersättas.

partition_key
PartitionKey
Obligatorisk

Partitionsnyckeln som ska användas för containern.

indexing_policy
dict[str, str]

Indexeringsprincipen som ska tillämpas på containern.

default_ttl
int

Standardtid att leva (TTL) för objekt i containern. Om objekten är ospecificerade upphör de inte att gälla.

conflict_resolution_policy
dict[str, str]

Konfliktlösningsprincipen som ska tillämpas på containern.

session_token
str

Token för användning med sessionskonsekvens.

etag
str

Ett ETag-värde eller jokertecknet (*). Används för att kontrollera om resursen har ändrats och agera enligt villkoret som anges av parametern match_condition .

match_condition
MatchConditions

Matchningsvillkoret som ska användas på etag.

initial_headers
dict[str, str]

Inledande rubriker som ska skickas som en del av begäran.

response_hook
Callable[[Dict[str, str], Dict[str, Any]], None]

En anropsbar anropad med svarsmetadata.

analytical_storage_ttl
int

TTL (Analytical Store Time to Live) för objekt i containern. Värdet None lämnar analyslagringen inaktiverad och värdet -1 aktiverar analyslagring utan TTL. Observera att analyslagring endast kan aktiveras på Synapse Link aktiverade konton.

Returer

En ContainerProxy-instans som representerar containern efter att ersättningen har slutförts.

Returtyp

Undantag

Upphöjt om containern inte kunde ersättas. Detta inkluderar om containern med angivet ID inte finns.

Exempel

Återställ TTL-egenskapen i en container och visa de uppdaterade egenskaperna:


           # Set the TTL on the container to 3600 seconds (one hour)
           await database.replace_container(container, partition_key=PartitionKey(path='/productName'), default_ttl=3600)

           # Display the new TTL setting for the container
           container_props = await database.get_container_client(container_name).read()
           print("New container TTL: {}".format(json.dumps(container_props['defaultTtl'])))

replace_throughput

Ersätt dataflödet på databasnivå.

Om det inte redan finns några dataflödesegenskaper för databasen utlöses ett undantag.

async replace_throughput(throughput: int | ThroughputProperties, **kwargs: Any) -> ThroughputProperties

Parametrar

throughput
Union[int, ThroughputProperties]
Obligatorisk

Det dataflöde som ska anges.

response_hook
Callable[[Dict[str, str], Dict[str, Any]], None]

En anropsbar anropad med svarsmetadata.

Returer

DataflödeEgenskaper för databasen, uppdaterade med nytt dataflöde.

Returtyp

Undantag

Det finns inga dataflödesegenskaper för databasen eller så gick det inte att uppdatera dataflödesegenskaperna.

replace_user

Ersätter den angivna användaren om den finns i containern.

async replace_user(user: str | UserProxy | Dict[str, Any], body: Dict[str, Any], **kwargs: Any) -> UserProxy

Parametrar

user
Union[str, Dict[str, Any], UserProxy]
Obligatorisk

ID:t (namn), diktat som representerar egenskaperna eller UserProxy instansen för den användare som ska ersättas.

body
Dict[str, Any]
Obligatorisk

Ett diktaliknande objekt som representerar användaren som ska ersättas.

response_hook
Callable[[Dict[str, str], Dict[str, Any]], None]

En anropsbar anropad med svarsmetadata.

Returer

En UserProxy-instans som representerar användaren efter ersättningen gick igenom.

Returtyp

Undantag

Om ersättningen misslyckades eller om användaren med angivet ID inte finns.

upsert_user

Infoga eller uppdatera den angivna användaren.

Om användaren redan finns i containern ersätts den. Om användaren inte redan finns infogas den.

async upsert_user(body: Dict[str, Any], **kwargs: Any) -> UserProxy

Parametrar

body
Dict[str, Any]
Obligatorisk

Ett diktaliknande objekt som representerar användaren att uppdatera eller infoga.

response_hook
Callable[[Dict[str, str], Dict[str, Any]], None]

En anropsbar anropad med svarsmetadata.

Returer

En UserProxy-instans som representerar den upserted användaren.

Returtyp

Undantag

Om den angivna användaren inte kunde upserted.