你当前正在访问 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>/colls/<container-name>

创建容器

获取数据库对象,然后创建容器

  • createIfNotExists - 如果不存在,则创建容器。 如果确实存在,则返回容器。
  • 创建 - 创建容器。 如果确实存在,则返回错误 statusCode。
const containerName = 'myContainer';

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

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

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

访问容器

可以从容器对象直接访问容器,也可以从 CosmosClient数据库对象链接来访问容器。

const databaseName = 'myDb';
const containerName = 'myContainer';

// Chained - assumes database and container already exis
const { container, statusCode } = await client.database(databaseName).container(containerName);

// Direct - assumes database and container already exist
const { database, statusCode } = await client.database(databaseName);
if(statusCode < 400){
    const { container, statusCode } = await database.container(containerName);
}

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

按对象访问:

  • 容器(复数):创建或查询容器。
  • 容器(单数):删除容器并处理项目。

删除容器

获取容器对象后,可以使用容器对象来删除容器:

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

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

后续步骤

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