Odczytywanie dokumentu

Ukończone

Istnieją dwa sposoby odczytywania elementu z kontenera w usłudze Azure Cosmos DB: odczyt punktu i odczyt zapytania. Odczyt punktu to najbardziej wydajny sposób odczytywania elementu, ponieważ używa unikatowej kombinacji identyfikatora i klucza partycji elementu do jego pobrania. Odczyt zapytania jest bardziej elastyczny i może pobierać wiele elementów na podstawie zapytania. Ta lekcja koncentruje się na odczytach punktów.

Jeśli na przykład w kontenerze znajduje się dokument o rozmiarze 1 KB, opłata za jednostkę ŻĄDANIA do wykonania odczytu punktu wynosi 1 RU. Opłata za jednostkę ŻĄDANIA dla odczytu zapytania jest oparta na liczbie zwracanych elementów i złożoności zapytania, ale minimalna opłata za jednostkę RU jest zwykle liczbą co najmniej 2,3 jednostek RU (jednostki żądania). Jeśli po prostu musisz odczytać pojedynczy element, odczyt punktu jest najbardziej efektywnym sposobem, aby to zrobić, ponieważ może odczytywać dane bezpośrednio i nie wymaga, aby aparat zapytań przetworzył żądanie.

Aby wykonać odczyt punktu istniejącego elementu z kontenera, potrzebujemy dwóch rzeczy.

Najpierw potrzebujemy unikatowego identyfikatora elementu. W tym miejscu przechowujemy ten identyfikator w zmiennej o tej samej nazwie.

string id = "027D0B9A-F9D9-4C96-8213-C8546C4AAE71";

Po drugie, musimy utworzyć zmienną typu PartitionKey z wartością ciągu dla właściwości zdefiniowanej jako klucz partycji dla szukanego elementu. Używamy kombinacji identyfikatora elementu i wartości klucza partycji, aby wykonać odczyt punktu.

string categoryId = "26C74104-40BC-4541-8EF5-9892F7F03D72";
PartitionKey partitionKey = new (categoryId);

Gdy mamy oba elementy, możemy wywołać asynchroniczną i ogólną metodę ReadItemAsync<> , która zwraca element danego typu ogólnego Product w tym przykładzie.

Product saddle = await container.ReadItemAsync<Product>(id, partitionKey);

W tym momencie możemy uzyskać dostęp do właściwości zmiennej siodła i wydrukować je w konsoli, podobnie jak każda zmienna lokalna.

string formattedName = $"New Product [${saddle}]";
Console.WriteLine(formattedName);

Najpierw potrzebujemy unikatowego identyfikatora elementu. W tym miejscu przechowujemy ten identyfikator w zmiennej.

item_id = "027D0B9A-F9D9-4C96-8213-C8546C4AAE71"

Następnie zdefiniuj wartość klucza partycji dla elementu. Używamy kombinacji identyfikatora elementu i wartości klucza partycji, aby wykonać odczyt punktu.

partition_key_value = "26C74104-40BC-4541-8EF5-9892F7F03D72"

Gdy masz już zarówno id jak i klucz partycji, możesz użyć metody read_item obiektu kontenera, aby wykonać odczyt punktowy.

saddle = container.read_item(item=item_id, partition_key=partition_key_value)

W tym momencie możemy uzyskać dostęp do właściwości zmiennej siodła i wydrukować je w konsoli, podobnie jak każda zmienna lokalna.

formatted_name = f"New Product [{saddle['name']}]"
print(formatted_name)

Najpierw potrzebujemy unikatowego identyfikatora elementu. W tym miejscu przechowujemy ten identyfikator w zmiennej.

const itemId = "027D0B9A-F9D9-4C96-8213-C8546C4AAE71";

Następnie zdefiniuj wartość klucza partycji dla elementu. Używamy kombinacji identyfikatora elementu i wartości klucza partycji, aby wykonać odczyt punktu.

const partitionKeyValue = "26C74104-40BC-4541-8EF5-9892F7F03D72";

Wykonywanie odczytu punktu

Gdy masz zarówno id jak i klucz partycji, możesz użyć metody readItem obiektu kontenera do przeprowadzenia odczytu punktowego.

const { resource: saddle } = await container.item(itemId, partitionKeyValue).read();

W tym momencie możemy uzyskać dostęp do właściwości zmiennej siodła i wydrukować je w konsoli, podobnie jak każda zmienna lokalna.

const formattedName = `New Product [${saddle.name}]`;
console.log(formattedName);