Поделиться через


Создание контейнера в Azure Cosmos DB для NoSQL с помощью JavaScript

ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL

Контейнеры в Azure Cosmos DB хранят наборы элементов. Прежде чем создавать и запрашивать элементы или управлять ими, необходимо сначала создать контейнер.

Присвойте имя контейнеру

В Azure Cosmos DB контейнер аналогичен таблице в реляционной базе данных. При создании контейнера имя контейнера формирует сегмент URI, используемый для доступа к ресурсу контейнера и любым дочерним элементам.

После создания URI контейнера имеет следующий формат:

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

Создание контейнера

Получите объект Database, а затем создайте контейнер:

  • createIfNotExists — создает контейнер, если он не существует. Если он существует, верните контейнер.
  • create — создает контейнер. Если он существует, верните код состояния ошибки.
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 — это код ответа HTTP. Успешный ответ находится в диапазоне от 200 до 299.

Доступ к контейнеру

Доступ к контейнеру осуществляется из объекта контейнера напрямую или цеплен из объектов CosmosClient или 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();

Доступ по объекту:

Удаление контейнера

После получения объекта Container можно использовать объект Container для удаления контейнера:

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

StatusCode — это код ответа HTTP. Успешный ответ находится в диапазоне от 200 до 299.

Следующие шаги

Теперь, когда вы создали контейнер, используйте следующее руководство для создания элементов.