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.