Share via


Criar um contêiner no Azure Cosmos DB for NoSQL usando o JavaScript

APLICA-SE A: NoSQL

Contêineres nos conjuntos de armazenamento de itens do Azure Cosmos DB. Antes de poder criar, consultar ou gerenciar itens, você deve criar um contêiner.

Nomear um contêiner

No Azure Cosmos DB, um contêiner é análogo a uma tabela em um banco de dados relacional. Quando você cria um contêiner, o nome do contêiner forma um segmento do URI usado para acessar o recurso de contêiner e todos os itens filho.

Aqui estão algumas regras rápidas ao nomear um contêiner:

  • Manter os nomes de contêiner entre 3 e 63 caracteres
  • Os nomes de contêiner só podem conter letras minúsculas, números ou o caractere de traço (-).
  • Os nomes de contêiner devem começar com uma letra minúscula ou um número.

Após criado, o URI para um contêiner ficará neste formato:

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

Criar um contêiner

Obtenha um objeto Database e, em seguida, crie um Contêiner:

  • createIfNotExists – Criará um contêiner se ele não existir. Se ele existir, retorne o contêiner.
  • create – Cria um contêiner. Se ele existir, retorne o status do erroCode.
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 });

O statusCode é um código de resposta HTTP. Uma resposta bem-sucedida está no intervalo de 200 a 299.

Acessar um contêiner

Um contêiner é acessado do objeto Contêiner diretamente ou encadeado dos objetos CosmosClient ou Database.

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();

Acesso por objeto:

  • Contêineres (plural): Criar ou consultar contêineres.
  • Contêiner (singular): Excluir contêiner, trabalhar com itens.

Excluir um contêiner

Depois de obter o objeto Contêiner, você poderá usar o objeto Contêiner para excluir o contêiner:

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

O statusCode é um código de resposta HTTP. Uma resposta bem-sucedida está no intervalo de 200 a 299.

Próximas etapas

Agora que você criou um contêiner, use o próximo guia para criar itens.