Compartir a través de


Creación de un contenedor en Azure Cosmos DB for NoSQL con JavaScript

SE APLICA A: NoSQL

Los contenedores de Azure Cosmos DB almacenan conjuntos de elementos. Para poder crear, consultar o administrar elementos, primero debe crear un contenedor.

Asignación de un nombre para un contenedor

En Azure Cosmos DB, un contenedor es análogo a una tabla en una base de datos relacional. Al crear un contenedor, el nombre del contenedor forma un segmento del URI usado para acceder al recurso de contenedor y a los elementos secundarios.

Una vez creado, el URI de un contenedor tiene este formato:

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

Crear un contenedor

Obtenga un objeto de base de datos y, a continuación, cree un contenedor:

  • createIfNotExists: crea un contenedor si no existe uno. Si existe, devuelva el contenedor.
  • create: crea un contenedor. Si existe, devuelva el error 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 es un código de respuesta HTTP. Una respuesta correcta está en el intervalo 200-299.

Acceder a un contenedor

Se tiene acceso a un contenedor desde el objeto de contenedor directamente o encadenado desde los objetos CosmosClient o base de datos.

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

Acceso por medio de un objeto:

  • Contenedores (plural): Crear o consultar contenedores.
  • Contenedor (singular): Eliminar contenedor, trabajar con elementos.

Eliminación de un contenedor

Una vez que obtenga el objeto de contenedor, puede usar el objeto de contenedor para eliminar el contenedor:

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

StatusCode es un código de respuesta HTTP. Una respuesta correcta está en el intervalo 200-299.

Pasos siguientes

Ahora que ha creado un contenedor, use la siguiente guía para crear elementos.