Sdílet prostřednictvím


Vytvoření kontejneru ve službě Azure Cosmos DB for NoSQL pomocí JavaScriptu

PLATÍ PRO: NoSQL

Kontejnery ve službě Azure Cosmos DB ukládají sady položek. Než budete moct vytvářet, dotazovat nebo spravovat položky, musíte nejprve vytvořit kontejner.

Pojmenování kontejneru

Ve službě Azure Cosmos DB je kontejner podobný tabulce v relační databázi. Při vytváření kontejneru tvoří název kontejneru segment identifikátoru URI sloužícího pro přístup k prostředku kontejneru a všechny podřízené položky.

Po vytvoření je identifikátor URI kontejneru v tomto formátu:

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

Vytvoření kontejneru

Získejte databázový objekt a pak vytvořte kontejner:

  • createIfNotExists – vytvoří kontejner, pokud neexistuje. Pokud existuje, vraťte kontejner.
  • create – vytvoří kontejner. Pokud existuje, vraťte kód stavu chyby.
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 je kód odpovědi HTTP. Úspěšná odpověď je v rozsahu 200–299.

Přístup ke kontejneru

Ke kontejneru se přistupuje z objektu kontejneru buď přímo, nebo zřetězený z objektů CosmosClient nebo 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();

Přístup podle objektu:

  • Kontejnery (množné číslo): Vytváření nebo dotazování kontejnerů
  • Kontejner (jednotné číslo): Odstranění kontejneru, práce s položkami

Odstranění kontejneru

Jakmile objekt Kontejner získáte, můžete kontejner odstranit pomocí objektu Kontejner:

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

StatusCode je kód odpovědi HTTP. Úspěšná odpověď je v rozsahu 200–299.

Další kroky

Teď, když vytvoříte kontejner, použijte dalšího průvodce k vytvoření položek.