共用方式為


使用 Python 在 Azure Cosmos DB for NoSQL 中建立容器

適用於:NoSQL

Azure Cosmos DB 中的容器會儲存項目集合。 您必須先建立容器,才能建立、查詢或管理項目。

命名容器

在 Azure Cosmos DB 中,容器類似於關聯式資料庫中的資料表。 當您建立容器時,容器名稱會成為存取容器資源和任何子資源的 URI 區段。

建立之後,容器的 URI 格式如下:

https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>

建立容器

若要建立容器,請呼叫下列其中一種方法:

建立容器

下列範例會使用 DatabaseProxy.create_container 方法來建立容器。 如果具有相同名稱的容器已經存在,這個方法會擲回例外狀況。

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.")

如果容器不存在,請建立容器

下列範例會使用 DatabaseProxy.create_container_if_not_exists 方法來建立容器。 相較於先前的 create 方法,如果資料庫已經存在,這個方法就不會擲回例外狀況。 這個方法有助於避免多次執行相同程式碼的錯誤。

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.")

以非同步方式建立容器

您也可以使用 azure.cosmos.aio 命名空間中的 類似物件和方法,以非同步方式建立資料庫。 例如,使用 DatabaseProxy.create_database 方法或 CosmoClient.create_database_if_not_exists 方法。

想要以平行方式執行多個作業時,以非同步方式運作會很有用。 如需詳細資訊,請參閱使用非同步用戶端

剖析回應

在上述範例中,來自要求的回應是 ContainerProxy,這是與 DB 容器互動的介面。 您可以從 Proxy 存取方法來在容器上執行作業。

下列範例顯示傳回容器物件的 create_container_if_not_exists 方法。

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"]}')

下一步

現在您已建立了容器,請使用下一個指南來建立項目。