Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Kontenery w Azure Cosmos DB przechowują zestawy elementów. Przed utworzeniem, wykonywaniem zapytań o elementy lub zarządzanie nimi należy najpierw utworzyć kontener.
Nazywanie kontenera
W Azure Cosmos DB kontener jest analogiczny do tabeli w relacyjnej bazie danych. Podczas tworzenia kontenera nazwa kontenera tworzy segment identyfikatora URI używanego do uzyskiwania dostępu do zasobu kontenera i wszystkich elementów podrzędnych.
Po utworzeniu identyfikator URI kontenera ma następujący format:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>
Tworzenie kontenera
Aby utworzyć kontener, wywołaj jedną z następujących metod:
Tworzenie kontenera
Za pomocą metody DatabaseProxy.create_container w poniższym przykładzie zostanie utworzony kontener. Ta metoda zgłasza wyjątek, jeśli kontener o tej samej nazwie już istnieje.
try:
partition_key_path = PartitionKey(path="/categoryId")
container = database.create_container(
id=CONTAINER_ID,
partition_key=partition_key_path,
offer_throughput=400,
)
print(f"Container created: {container.id}")
except CosmosResourceExistsError:
print("Container already exists.")
Utwórz kontener, jeśli jeszcze nie istnieje
Za pomocą metody DatabaseProxy.create_container_if_not_exists w poniższym przykładzie zostanie utworzony kontener. W porównaniu z poprzednią metodą create ta metoda nie zgłasza wyjątku, jeśli baza danych już istnieje. Ta metoda jest przydatna do unikania błędów w przypadku wielokrotnego uruchamiania tego samego kodu.
try:
partition_key_path = PartitionKey(path="/categoryId")
container = database.create_container_if_not_exists(
id=CONTAINER_ID,
partition_key=partition_key_path,
offer_throughput=400,
)
print(f"Container created or returned: {container.id}")
except CosmosHttpResponseError:
print("Request to the Azure Cosmos database service failed.")
Tworzenie kontenera asynchronicznie
Kontener można również utworzyć asynchronicznie przy użyciu podobnych obiektów i metod w przestrzeni nazw azure.cosmos.aio . Na przykład użyj metody DatabaseProxy.create_container lub metody CosmosClient.create_container_if_not_exists .
Praca asynchroniczna jest przydatna, gdy chcesz wykonać wiele operacji równolegle. Aby uzyskać więcej informacji, zobacz Używanie klienta asynchronicznego.
Analizowanie odpowiedzi
W powyższych przykładach odpowiedź z żądań to ContainerProxy, który jest interfejsem umożliwiającym interakcję z kontenerem bazy danych. Z poziomu serwera proxy możesz uzyskać dostęp do metod wykonywania operacji na kontenerze.
Poniższy przykład przedstawia metodę create_container_if_not_exists zwracającą obiekt kontenera .
partition_key_path = PartitionKey(path="/categoryId")
container = database.create_container_if_not_exists(
id=CONTAINER_ID,
partition_key=partition_key_path,
offer_throughput=400,
)
for doc in container.read_all_items(max_item_count=10):
print(f'Doc id: {doc["id"]}')