使用 .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>

提示

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

创建数据库

若要创建数据库,请调用以下方法之一:

异步创建数据库

以下示例异步创建了一个数据库:

// New instance of Database class referencing the server-side database
Database database1 = await client.CreateDatabaseAsync(
    id: "adventureworks-1"
);

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

异步创建数据库(如果该数据库尚不存在)

以下示例为仅在帐户中尚不存在数据库时才异步创建数据库:

// New instance of Database class referencing the server-side database
Database database2 = await client.CreateDatabaseIfNotExistsAsync(
    id: "adventureworks-2"
);

CosmosClient.CreateDatabaseIfNotExistsAsync 方法仅在尚不存在某个数据库时才创建新数据库。 如果多次运行同一代码,此方法可用于避免错误。

分析响应

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

以下示例演示返回 DatabaseResponse 的 CosmosClient.CreateDatabaseIfNotExistsAsync 方法。 返回后,可以分析响应属性,然后最终获取基础数据库对象:

// New instance of Database response class referencing the server-side database
DatabaseResponse response = await client.CreateDatabaseIfNotExistsAsync(
    id: "adventureworks-3"
);
// Parse additional response properties
Database database3 = response.Database;

后续步骤

创建数据库后,即可按照下一指南来创建容器。