Partager via


Créer un conteneur dans Azure Cosmos DB for NoSQL à l’aide de JavaScript

S’APPLIQUE À : NoSQL

Les conteneurs dans Azure Cosmos DB stockent des ensembles d’éléments. Avant de pouvoir créer, interroger ou gérer des éléments, vous devez d’abord créer un conteneur.

Nommer un conteneur

Dans Azure Cosmos DB, un conteneur est analogue à une table d’une base de données relationnelle. Lorsque vous créez un conteneur, le nom du conteneur forme un segment de l’URI utilisé pour accéder à la ressource de conteneur et à tous les éléments enfants.

Voici quelques règles rapides lors de l’affectation d’un nom à un conteneur :

  • Les noms de conteneur doivent comprendre entre 3 et 63 caractères
  • Les noms de conteneur ne peuvent contenir que des lettres minuscules, des chiffres ou le caractère de tiret (-).
  • Les noms de conteneurs doivent commencer par une lettre minuscule ou un chiffre.

Après création, l’URI d’un conteneur est au format suivant :

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

Créez un conteneur.

Obtenez un objet Database , puis créez un conteneur :

  • createIfNotExists : crée un conteneur s’il n’en existe pas. S’il en existe une, renvoie le conteneur.
  • create : crée un conteneur. S’il en existe une, retourne l’erreur 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 });

Le statusCode est un code de réponse HTTP. Une réponse positive est comprise entre 200 et 299.

Accéder à un conteneur

Un conteneur est accessible à partir de l’objet Container directement ou chaîné à partir des objets 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();

Accès par objet :

  • Conteneurs (pluriel) : créez ou interrogez des conteneurs.
  • Conteneur (singulier) : supprimer le conteneur, utiliser des éléments.

Supprimer un conteneur

Une fois que vous avez obtenu l’objet Container , vous pouvez utiliser l’objet Container pour supprimer le conteneur :

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

Le statusCode est un code de réponse HTTP. Une réponse positive est comprise entre 200 et 299.

Étapes suivantes

Maintenant que vous avez créé un conteneur, utilisez le guide suivant pour créer des éléments.