使用 .NET 在 Azure Cosmos DB for 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.CreateDatabaseAsyncCosmosClient.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;

后续步骤

创建数据库后,请使用下一指南创建容器。