Aktualizowanie dokumentów

Ukończone

Możemy również zmodyfikować właściwości zmiennej siodła .

W tym przykładzie zmieniamy cenę zmiennej z oryginalnego $27.12 na $35.00.

saddle.price = 35.00d;

Aby utrwalć tę zmianę, możemy wywołać asynchroniczną metodę ReplaceItemAsync<> przekazującą tylko element aktualizacji.

await container.ReplaceItemAsync<Product>(saddle);

Możemy również nadal wprowadzać nowe zmiany. W tym przykładzie zastąpimy tablicę tagów nową tablicą tagów dokładniejszymi opisami siodła.

saddle.tags = new string[] { "brown", "new", "crisp" };

Mimo że dokument został już zaktualizowany, nie musimy odczytywać nowego elementu przed ponownym zaktualizowaniem elementu.

await container.ReplaceItemAsync<Product>(saddle);
saddle["price"] = 35.00

Aby utrwalć tę zmianę, użyj metody replace_item , przekazując zaktualizowany element.

response = container.replace_item(item=saddle, body=saddle)

Możemy kontynuować wprowadzanie aktualizacji do elementu bez konieczności ponownego odczytywania go. Na przykład możemy zastąpić tablicę tagów nową tablicą zawierającą dokładniejsze opisy produktu.

saddle["tags"] = ["brown", "new", "crisp"]

Mimo że dokument został już zaktualizowany, nie musimy odczytywać nowego elementu przed ponownym zaktualizowaniem elementu.

response = container.replace_item(item=saddle, body=saddle)
saddle.price = 35.00;

Aby utrwalć tę zmianę, użyj metody replace , przekazując zaktualizowany element.

await container.item(saddle.id, saddle.categoryId).replace(saddle);

Możemy kontynuować wprowadzanie aktualizacji do elementu bez konieczności ponownego odczytywania go. Na przykład możemy zastąpić tablicę tagów nową tablicą zawierającą dokładniejsze opisy produktu.

item.tags = ["brown", "new", "crisp"];

Mimo że dokument został już zaktualizowany, nie musimy odczytywać nowego elementu przed ponownym zaktualizowaniem elementu.

await container.item(saddle.id, saddle.categoryId).replace(saddle);

Uwaga

Usługa Cosmos DB obsługuje optymistyczną współbieżność do sprawdzania, czy element uległ zmianie od ostatniego odczytu i zwraca błąd konfliktu, jeśli tak. Szczegółowe informacje na temat korzystania z tego poziomu współbieżności znajdują się w dokumentacji zestawu SDK.