你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 JavaScript 在 Azure Cosmos DB for NoSQL 中创建数据库

适用范围: NoSQL

Azure Cosmos DB 中的数据库是一个或多个容器的管理单元。 必须先创建数据库,然后才能创建或管理容器。

为数据库命名

在 Azure Cosmos DB 中,数据库类似于命名空间。 创建数据库时,数据库名称会形成用于访问数据库资源和任何子资源的 URI 段。

下面是命名数据库时的一些快速规则:

  • 数据库名称长度必须介于 3 到 63 个字符之间
  • 数据库名称只能包含小写字母、数字或短划线 (-) 字符。
  • 数据库名称必须以小写字母或数字开头。

创建后,数据库的 URI 采用以下格式:

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

创建数据库

创建 CosmosClient 后,使用客户端通过两个不同的调用创建数据库

  • createIfNotExists - 如果数据库不存在,则创建数据库。 如果它存在,则返回数据库。
  • 创建–创建数据库。 如果它存在,则返回错误 statusCode。
const databaseName = 'myDb';

// Possible results:
// Create then return database
// Return existing database
// Return error statusCode
const {statusCode, database } = await client.databases.createIfNotExists({ id: databaseName });

// Possible results: 
// Create then return database
// Return error statusCode, reason includes database already exists
const {statusCode, database } = await client.databases.create({ id: databaseName });

statusCode 是 HTTP 响应代码。 成功响应介于 200-299 范围内。

访问数据库

可以直接从 Database 对象访问数据库,也可以通过 CosmosClient 中的查询结果访问数据库。

const databaseName = 'myDb';

// Direct - assumes database already exists
const { database, statusCode } = await client.database(databaseName);

// Query - assumes database already exists   
const { resources } = await client.databases
.query({
    query: `SELECT * FROM root r where r.id =@dbId`,
    parameters: [
    {
        name: '@dbId',
        value: databaseName
    }
    ]
})
.fetchAll();

按对象访问:

  • 数据库(复数):用于创建新数据库或查询/读取所有数据库。
  • 数据库(单数):用于通过 ID 读取、更新或删除现有数据库,或者访问属于该数据库的容器。

删除数据库

获取了数据库对象后,可以使用数据库对象删除数据库:

const {statusCode } = await database.delete();

statusCode 是 HTTP 响应代码。 成功响应介于 200-299 范围内。

后续步骤

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