FindOneandupdate () Metoda zwraca dokument po aktualizacji, podczas gdy aktualizacja () Metoda MongoDB aktualizuje również jeden dokument, ale nie zwraca żadnego dokumentu.
W tym artykule nauczysz się rozumieć i zastosować FindoneAndupDate() Metoda MongoDB w celu dopasowania i aktualizacji jednego dokumentu.
Jak FindoneAndupdate () działa w MongoDB
Mechanizm działający tej metody opiera się na składni podanej poniżej:
db.Nazwa kolekcji.FindOneAndUpdate (filtr, aktualizacja, opcje)W powyższej składni:
Nazwa kolekcji odnosi się do gromadzenia bazy danych Mongo, w której znajduje się dokument.
filtr jest warunkiem dopasowania dokumentu.
aktualizacja zawiera pola i powiązane wartość (-y) do aktualizacji
opcje to parametry do udoskonalenia przetwarzania aktualizacji. Na przykład „Maxtimems„Opcja służy do ograniczenia czasu wykonywania zapytania. Jeśli określony limit czasu przekroczy, zapytanie nie zostanie wykonane.
Jak zastosować metodę FindOneAndupDate () w MongoDB
W tej sekcji szczegółowy przewodnik jest dostarczany z pomocą kilku przykładów do użycia metody FindOneAndupDate ():
Przykład 1: Aktualizacja pojedynczego dokumentu
W tym przykładzie użyjemy „Laptopy”Kolekcja i następują zawartość:
> db.Laptopy.znajdować().ładny()Chcemy dodać "Status" pole z wartością „dostępny„Do dokumentów, w których„Jednostki„Wartość jest większa lub równa„50". Polecenie wspomniane poniżej będzie wykonywać wyżej wymienioną aktualizację za pomocą pomocy FindOneandupdate () metoda.
> db.Laptopy.FindOneAndUpdate („jednostki”: $ gte: 50, $ set: „status”: „Dostępny”)Następujące obserwacje są pobierane z powyższego wyjścia:
FindOneandupdate () Metoda zwróciła oryginalny dokument (przed aktualizacją).
Ponieważ istnieją dwa dokumenty, które „mają„Jednostki„Wartość większa lub równa„50", ale FindOneandupdate () Metoda rozważa pierwszy, który pasuje do stanu.
Możesz zweryfikować aktualizację, używając poniższego polecenia: i zauważa się, że tylko jeden dokument jest dodawany do pola „Status".
> db.Laptopy.znajdować().ładny()Przykład 2: Zwracanie zaktualizowanego dokumentu
Domyślnie metoda FindOneAndupDate () zwraca oryginalny dokument. Możesz uzyskać zaktualizowany dokument w zamian, ustawiając „ReturnNewdocument„Wartość opcji do„PRAWDA".
Polecenie napisane poniżej doda nowe pole „kot”, A jego wartość jest ustawiona na„Hazard". Aktualizacja jest wykonywana do dokumentu, w którym „Cena„Wartość jest równa 1750. Co więcej, „ReturnNewdocument" wartosc jest "PRAWDA". Musi więc zwrócić zaktualizowany dokument.
> db.Laptopy.FindOneAndUpdate ("cena": 1750, $ set: "cat": "gaming", returnNewdocument: true)Dane wyjściowe pokazuje, że dokument zwrócony przez powyższe polecenie jest zaktualizowaną wersją.
Przykład 3: Korzystanie z metody FindOneAndupDate () z opcjami
Ta metoda obsługiwana jest wiele opcji, ponieważ zastosowaliśmy „ReturnNewdocument„Opcja w„Przykład 2". W tej sekcji wyjaśniono kilka innych opcji obsługiwanych tą metodą.
Upsert: Wartość „Upsert„Opcja jest domyślnie fałszywa. A jeśli jest ustawiony na „PRAWDA", The FindOneandupdate () Metoda utworzy nowy dokument, jeśli warunek nie będzie zgodny z dowolnym dokumentem.
Na przykład, pomijane poniżej polecenie będzie szukało dokumentów, w których „Robić„Wartość pasuje”Obcy" w Laptopy kolekcja. Ponieważ żaden dokument nie ma wartości pola „Obcy", Dlatego zostanie utworzony nowy dokument, ponieważ ustawiliśmy „Upsert„Wartość jako„PRAWDA".
Notatka: Użyliśmy również „ReturnNewdocument„Opcja, aby w zamian uzyskać zaktualizowany dokument.
> db.Laptopy.FindOneAndUpdate („Make”: „Alien”, $ set: „cena”: 1500, „cat”: „gaming”, upsert: true, returnNewdocument: true)Maxtimems: Ta opcja służy do ograniczenia czasu (w milisekundach) dla polecenia aktualizacji. Jeśli określony limit czasu przekroczy, zapytanie zwróci błąd. Na przykład ustawiliśmy „Maxtimems„Opcja do cecenia„2”W poniższym wspomnianym poleceniu:
> db.Laptopy.FindOneAndupDate („Make”: „Alien”, $ set: „jednostki”: 15, „cena”: 1850, returnNewdocument: true, maxtimems: 2)Notatka: Wartość „Maxtimems„Opcja musi być numeryczna (nie float lub żaden inny danych).
Wniosek
Proces aktualizacji odgrywa kluczową rolę w dowolnym systemie zarządzania bazą danych, ponieważ dane muszą być aktualizowane z czasem w każdej organizacji. MongoDB używane są kilka rozszerzeń metod aktualizacji FindOneandupdate (). W tym poście informacyjnym podaliśmy krótkie zastosowanie tej metody w MongoDB. Metoda ukierunkowana pasuje do pierwszego dokumentu na podstawie warunku, a następnie aktualizuje określone pola (ów) tego dokumentu.