使用 .NET 在适用于 NoSQL 的 Azure Cosmos DB 中创建容器

适用范围: NoSQL

Azure Cosmos DB 中的容器存储项集。 必须先创建容器,然后才能创建、查询或管理项。

为容器命名

在 Azure Cosmos DB 中,容器类似于关系数据库中的表。 创建容器时,容器名称构成用于访问容器资源和任何子项的 URI 段。

下面是命名容器时的一些快速规则:

  • 容器名称不能为空。
  • 容器名称的长度不能超过 256 个字符。

创建后,容器的 URI 采用以下格式:

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

提示

有关容器名称限制的详细信息,请参阅服务配额和限制

创建容器

若要创建容器,请调用以下方法之一:

异步创建容器

以下示例以异步方式创建一个容器:

// New instance of Container class referencing the server-side container
Container container1 = await database.CreateContainerAsync(
    id: "products-1",
    partitionKeyPath: "/category",
    throughput: 400
);

如果已存在同名的数据库,Database.CreateContainerAsync 方法会引发异常。

异步创建容器(如果该容器尚不存在)

以下示例仅在帐户中尚不存在某个容器时才异步创建该容器:

// New instance of Container class referencing the server-side container
Container container2 = await database.CreateContainerIfNotExistsAsync(
    id: "products-2",
    partitionKeyPath: "/category",
    throughput: 400
);

Database.CreateContainerIfNotExistsAsync 方法仅在尚不存在某个容器时才创建新容器。 如果多次运行同一代码,此方法可用于避免错误。

分析响应

到目前为止,在所有示例中,异步请求的响应都会立即强制转换为 Container 类型。 你可能想要分析有关响应的元数据,包括标头和 HTTP 状态代码。 Database.CreateContainerAsync 和 Database.CreateContainerIfNotExistsAsync 方法的真正返回类型为 ContainerResponse

以下示例显示了返回 ContainerResponse 的 Database.CreateContainerIfNotExistsAsync 方法。 返回后,可以分析响应属性,然后最终获取基础“容器”对象:

// New instance of Container class referencing the server-side container
ContainerResponse response = await database.CreateContainerIfNotExistsAsync(
    id: "products-3",
    partitionKeyPath: "/category",
    throughput: 400
);
// Parse additional response properties
Container container3 = response.Container;

后续步骤

创建容器后,请使用下一个指南来创建项。