Aktualizowanie dokumentów
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.