Создание контейнера в Azure Cosmos DB для NoSQL с помощью .NET
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
Контейнеры в Azure Cosmos DB хранят наборы элементов. Прежде чем создавать и запрашивать элементы или управлять ими, необходимо сначала создать контейнер.
Присвойте имя контейнеру
В Azure Cosmos DB контейнер аналогичен таблице в реляционной базе данных. При создании контейнера имя контейнера формирует сегмент URI, используемый для доступа к ресурсу контейнера и любым дочерним элементам.
Ниже приведены краткие правила присвоения имен контейнерам.
- Имена контейнеров не должны быть пустыми.
- Имена контейнеров не могут превышать 256 символов.
После создания URI контейнера имеет следующий формат:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>
Совет
Дополнительные сведения об ограничениях имен контейнеров см. в разделе "Квоты и ограничения службы"
Создание контейнера
Для создания контейнера вызовите один из следующих методов:
Асинхронное создание контейнера
В нижеприведенном примере контейнер создается асинхронно:
// New instance of Container class referencing the server-side container
Container container1 = await database.CreateContainerAsync(
id: "products-1",
partitionKeyPath: "/category",
throughput: 400
);
Метод Database.CreateContainerAsync
создает исключение, если база данных с тем же именем уже существует.
Создайте контейнер асинхронно, если он еще не существует
В следующем примере контейнер создается асинхронно, только если он еще не существует в учетной записи:
// New instance of Container class referencing the server-side container
Container container2 = await database.CreateContainerIfNotExistsAsync(
id: "products-2",
partitionKeyPath: "/category",
throughput: 400
);
Метод Database.CreateContainerIfNotExistsAsync
создает только новый контейнер, если он еще не существует. Этот метод полезен для предотвращения ошибок при многократном выполнении одного и того же кода.
Анализ ответа
Во всех предыдущих примерах ответ на асинхронный запрос сразу приводился к типу Container
. Может потребоваться проанализировать метаданные об ответе, включая заголовки и код состояния HTTP. Истинным типом возвращаемого значения для методов Database.CreateContainerAsync и Database.CreateContainerIfNotExistsAsync является ContainerResponse
.
В следующем примере показан метод Database.CreateContainerIfNotExistsAsync, возвращающий ContainerResponse. После возврата можно проанализировать свойства ответа, а затем получить базовый объект Container:
// New instance of Container class referencing the server-side container
ContainerResponse response = await database.CreateContainerIfNotExistsAsync(
id: "products-3",
partitionKeyPath: "/category",
throughput: 400
);
// Parse additional response properties
Container container3 = response.Container;
Следующие шаги
Теперь, когда вы создали контейнер, используйте следующее руководство для создания элементов.