Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I contenitori in Azure Cosmos DB archiviano set di elementi. Prima di poter creare, eseguire query o gestire elementi, è necessario creare un contenitore.
Assegnare un nome a un contenitore
In Azure Cosmos DB un contenitore è analogo a una tabella in un database relazionale. Quando si crea un contenitore, il nome del contenitore costituisce un segmento dell'URI usato per accedere alla risorsa contenitore e agli elementi figlio.
Dopo la creazione, l'URI per un contenitore è in questo formato:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>
Creare un contenitore
Per creare un contenitore, chiamare uno dei metodi seguenti:
Creare un contenitore
Nell'esempio seguente viene creato un contenitore con il DatabaseProxy.create_container metodo . Questo metodo genera un'eccezione se il contenitore con lo stesso nome esiste già.
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.")
Creare un contenitore se non esiste già
Nell'esempio seguente viene creato un contenitore con il DatabaseProxy.create_container_if_not_exists metodo . Rispetto al metodo di creazione precedente, questo metodo non genera un'eccezione se il database esiste già. Questo metodo è utile per evitare errori se si esegue lo stesso codice più volte.
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.")
Creare un contenitore in modo asincrono
È anche possibile creare un database in modo asincrono usando oggetti e metodi simili nello spazio dei nomi azure.cosmos.aio . Ad esempio, usare il metodo DatabaseProxy.create_database o il metodo CosmoClient.create_database_if_not_exists.
Lavorare in modo asincrono è utile quando si vogliono eseguire più operazioni in parallelo. Per altre informazioni, vedere Uso del client asincrono.
Analisi della risposta
Negli esempi precedenti, la risposta delle richieste è un oggetto ContainerProxy, che è un'interfaccia per interagire con un contenitore DB. Dal proxy è possibile accedere ai metodi per eseguire operazioni sul contenitore.
Nell'esempio seguente viene illustrato il metodo create_container_if_not_exists che restituisce un oggetto contenitore .
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"]}')