Udostępnij za pośrednictwem


Tworzenie kontenera w usłudze Azure Cosmos DB for NoSQL przy użyciu platformy .NET

DOTYCZY: NoSQL

Kontenery w usłudze Azure Cosmos DB przechowują zestawy elementów. Przed utworzeniem, wykonywaniem zapytań o elementy lub zarządzanie nimi należy najpierw utworzyć kontener.

Nadaj kontenerowi nazwę

W usłudze Azure Cosmos DB kontener jest analogiczny do tabeli w relacyjnej bazie danych. Podczas tworzenia kontenera nazwa kontenera tworzy segment identyfikatora URI używanego do uzyskiwania dostępu do zasobu kontenera i wszystkich elementów podrzędnych.

Poniżej przedstawiono kilka szybkich reguł podczas nazewnictwa kontenera:

  • Nazwy kontenerów nie mogą być puste.
  • Nazwy kontenerów nie mogą być dłuższe niż 256 znaków.

Po utworzeniu identyfikator URI kontenera ma następujący format:

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

Porada

Aby uzyskać więcej informacji na temat limitów nazw kontenerów, zobacz limity przydziału i limity usługi

Tworzenie kontenera

Aby utworzyć kontener, wywołaj jedną z następujących metod:

Tworzenie kontenera asynchronicznie

W poniższym przykładzie kontener jest tworzony asynchronicznie:

// New instance of Container class referencing the server-side container
Container container1 = await database.CreateContainerAsync(
    id: "products-1",
    partitionKeyPath: "/category",
    throughput: 400
);

Metoda Database.CreateContainerAsync zgłasza wyjątek, jeśli baza danych o tej samej nazwie już istnieje.

Utwórz kontener asynchronicznie, jeśli jeszcze nie istnieje

Poniższy przykład tworzy kontener asynchronicznie tylko wtedy, gdy jeszcze nie istnieje na koncie:

// New instance of Container class referencing the server-side container
Container container2 = await database.CreateContainerIfNotExistsAsync(
    id: "products-2",
    partitionKeyPath: "/category",
    throughput: 400
);

Metoda Database.CreateContainerIfNotExistsAsync tworzy tylko nowy kontener, jeśli jeszcze nie istnieje. Ta metoda jest przydatna do unikania błędów w przypadku wielokrotnego uruchamiania tego samego kodu.

Analizowanie odpowiedzi

We wszystkich przykładach do tej pory odpowiedź z żądania asynchronicznego została natychmiast oddana do Container typu. Możesz chcieć przeanalizować metadane dotyczące odpowiedzi, w tym nagłówki i kod stanu HTTP. Prawdziwy typ zwracany dla metod Database.CreateContainerAsync i Database.CreateContainerIfNotExistsAsync to ContainerResponse.

W poniższym przykładzie przedstawiono metodę Database.CreateContainerIfNotExistsAsync zwracającą element ContainerResponse. Po powrocie można przeanalizować właściwości odpowiedzi, a następnie pobrać bazowy obiekt kontenera :

// 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;

Następne kroki

Po utworzeniu kontenera użyj następnego przewodnika, aby utworzyć elementy.