Condividi tramite


Creare un contenitore in Azure Cosmos DB per NoSQL usando JavaScript

SI APPLICA A: NoSQL

I contenitori in Azure Cosmos DB archiviano set di elementi. Prima di poter creare, eseguire query o gestire elementi, è necessario creare un contenitore.

Assegnare un nome a un contenitore

In Azure Cosmos DB, un contenitore è analogo a una tabella in un database relazionale. Quando si crea un contenitore, il nome del contenitore costituisce un segmento dell'URI usato per accedere alla risorsa del contenitore e a qualsiasi elemento figlio.

Dopo la creazione, l'URI per un contenitore si presenta nel seguente formato:

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

Creazione di un contenitore

Ottenere un oggetto Database, quindi creare un Contenitore:

  • createIfNotExists: crea un contenitore, se non ne esiste già uno. Se invece esiste, restituisce come risultato il contenitore.
  • create: crea un contenitore. Se esiste, restituisce l'errore 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 è un codice di risposta HTTP. Una risposta con esito positivo viene restituita nell'intervallo 200-299.

Accedere a un contenitore

È possibile accedere a un contenitore direttamente dall'oggetto Container oppure un contenitore può essere concatenato dagli oggetti CosmosClient o 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();

Accesso in base all'oggetto:

  • Containers (plurale): crea o esegue query sui contenitori.
  • Container (singolare): elimina un contenitore, usa gli elementi.

Eliminare un contenitore

Dopo aver ottenuto l'oggetto Container, è possibile usare tale oggetto per eliminare il contenitore:

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

StatusCode è un codice di risposta HTTP. Una risposta con esito positivo rientra nell'intervallo 200-299.

Passaggi successivi

Dopo aver creato un contenitore, usare la guida successiva per creare elementi.