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 方法的真实返回类型为 DatabaseResponse。
下面的示例展示了 CosmosClient.CreateDatabaseIfNotExistsAsync 方法返回 DatabaseResponse。 返回后,可以分析响应属性,然后最终获取基础 数据库 对象:
// 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;
后续步骤
创建数据库后,请使用下一指南创建容器。