Operator set MongoDB $

Operator set MongoDB $

Jeśli jesteś częstym użytkownikiem innych baz danych, takich jak Oracle i SQL, musisz mieć pojęcie o składni zapytań, która jest używana do aktualizacji już wstawianych rekordów w tych bazach danych. MongoDB wykorzystuje również niektóre zapytania aktualizacyjne, ale te zapytania są zupełnie inne w porównaniu z innymi bazami danych. W MongoDB instrukcje aktualizacji wykorzystują operator „$ set” MongoDB, aby szczególnie zastąpić starą wartość nową wartością lub dodać nowe pole do jednego rekordu. Ten przewodnik pomaga użyć wszystkich zapytań funkcyjnych „wstaw” do aktualizacji pojedynczego pola lub wielu pól rekordu za pomocą operatora „$ set”.

Przykład 1:

Opracowując pierwszą ilustrację MongoDB, obejmujemy użycie operatora „$ set” do aktualizacji prostych rekordów w bazie danych. W tym celu próbujemy funkcji „insert ()” MongoDB, aby dodać pojedynczy rekord trzech pól danych.

Test> db.nowy.wstaw („id”: 01, „nazwa”: „pita”, „wiek”: 30)

Po dodaniu pierwszego pojedynczego rekordu używamy funkcji FINK () wraz z funkcją „foreach ()”, aby wyświetlić wartość wstawioną.

Test> db.nowy.znajdować().Foreach (printJson)

Teraz używamy funkcji updateOne () do aktualizacji pola „Nazwa” z włożonego rekordu za pomocą operatora „$ set”. Pamiętaj, aby wymienić pole „id” jako unikalne pole, zwłaszcza gdy masz więcej niż 1 rekord w bazie danych, aby rozróżnić.

Test> db.nowy.updateOne ("id": 01, $ set: "name": "Peter")

Po zaktualizowaniu rekordu za pomocą operatora „$ SET”, ponownie wypróbujemy funkcję „Znajdź ()” ponownie w powładzie MongoDB, aby sprawdzić, czy aktualizacja zadziałała, czy nie.

Test> db.nowy.znajdować().Foreach (printJson)

Okazuje się, że aktualizacja jest z powodzeniem wykonana przez operatora „Set” MongoDB.

Przykład 2:

Po przejrzeniu prostych ilustracji aktualizacji rekordów MongoDB za pośrednictwem operatora $ set, poruszamy jeden krok do przodu. W tej ilustracji aktualizujemy zagnieżdżone rekordy tablicy (dokumenty) każdej bazy danych, która znajduje się w MongoDB. W tym celu nasza baza danych powinna mieć przynajmniej jeden taki rekord, który zawiera w niej tablicę lub dokument. Dlatego na powładzie jest następujące polecenie „inserTone ()” MongoDB, aby dodać nowy rekord do bazy danych „testowych”. Ten rekord zawiera łącznie 3 pól danych. Pole „Data” to typ dokumentu, a pole „EDU” to tablica.

Test> db.test.inserTone (id: 01, Data: Nazwa: „Johny”, wiek: 34, edu: [„Matric”, „fsc”])

Po dodaniu jednego rekordu dodajemy kolejny rekord w bazie danych „TEST” z tą samą metodą w zapytaniu funkcyjnym InserTone (). Oba te rekordy są pomyślnie dodane.

Test> db.test.inserTone (id: 02, Data: name: „elsa”, wiek: 29, edu: [„fsc”, „bs”])

Teraz, gdy te rekordy są dodawane, sprawdźmy je w naszej MongoDB za pomocą funkcji Find () wraz z funkcją foreach (), biorąc „printJSON” jako argument przedstawiający dane bazy danych w formacie JSON. Wyświetlane są dwa rekordy zawierające tablicę i dokument.

Test> db.test.znajdować().Foreach (printJson)

Przykład 3:

Teraz aktualizujemy drugi rekord z bazy danych „Test”, który jest najpierw dodawany za pośrednictwem operatora „Ustaw” MongoDB. Dlatego funkcja „aktualizacji” jest odrzucana w CLI MongoDB w tym celu. Operator „$ set” jest używany tutaj do aktualizacji pola „dat” tego rekordu. Aby zaktualizować konkretne pole, upewnij się, że zaktualizuj wszystkie jego pola dziecięce, ponieważ jeśli pomijasz dowolne pole dziecięce, usuwa je jako aktualizację i nie wyświetli go ponownie. Dlatego aktualizujemy pól „Nazwa” i „Age” z dokumentu „Dane” drugiego rekordu.

Test> db.test.aktualizacja (id: 2, $ set: data: name: „Maya”, wiek: 33)

Po wypróbowaniu zapytania o Find () na powładzie MongoDB w celu wyświetlenia rekordu bazy danych, otrzymujemy aktualizowany zestaw rekordów przez operator „$ set” w zamian. Nazwa „Elsa” jest zastąpiona przez „Maya”, a wiek „29” zastępuje się „33”. Z wyjścia można zobaczyć, że pierwszy rekord jest nietknięty podczas aktualizacji.

Test> db.test.znajdować().Foreach (printJson)

W poprzedniej demonstracji zaktualizowaliśmy tylko pole zagnieżdżone typu dokumentu z rekordu bazy danych „test” za pośrednictwem operatora „$ set”. Teraz aktualizujemy pole typu tablicy tej samej bazy danych za pomocą operatora „$ set” MongoDB. Korzystając z tego samego sposobu, używamy funkcji „UpdateOne” zamiast funkcji „aktualizacji”, aby zaktualizować pojedynczy rekord - pierwszy rekord bazy danych „Test”. Wspominamy o polu, które jest używane jako „id” dla rekordu i wypróbujemy operator „$ set” w celu aktualizacji pola typu dokumentowego „Data” i pola tablicy „edu”. Po wykonaniu następującego zapytania rekord jest aktualizowany.

Test> db.test.updateOne (id: 1, $ set: data: nazwa: „Paul”, wiek: 30, edu: [„fa”, „Phd”])

Po tej aktualizacji przez operatora „$ set” używamy tej samej funkcji FINK () z funkcją foreach (), aby wyświetlić zaktualizowany rekord na naszej powładzie MongoDB w formacie JSON. Ten 1St rekord jest doskonale aktualizowany bez żadnego błędu zgodnie z wyjściem.

Test> db.test.znajdować().Foreach (printJson)

Istnieje kolejny unikalny sposób aktualizacji rekordu bazy danych MongoDB. W ten sposób obejmuje użycie postaci „kropki” o nazwie pola i jego zagnieżdżonym polu, aby zaktualizować określone pole dziecięce w polu głównym. Operator „$ set” jest wykorzystywany do aktualizacji wartości pola „wiek” z głównego pola „danych” 1St Record, od 30 do 28. W tym celu próbujemy konkretnego formatu zapytania o aktualizację () w operatorze „$ set”, takiego jak „dane.Wiek ”: 28.

Test> db.test.aktualizacja (id: 1, $ set: "dane.Wiek ": 28)

Po aktualizacji rekordu przy użyciu poprzedniej metody wyświetlamy zaktualizowany rekord.

Test> db.test.znajdować().Foreach (printJson)

Aby zaktualizować tablicę w ramach rekordu, musisz wspomnieć o numerze indeksu konkretnego rekordu po znaku „kropka” wraz z wartością oddzieloną przez „:” za pomocą operatora „Ustaw”.

Test> db.test.aktualizacja (id: 1, $ set: "dane.Wiek „: 33”, Edu.1 ":„ Phd ”)

Aktualizacja znajduje odzwierciedlenie w bazie danych „testowych”. Znaleźliśmy nową wartość w kolumnie.

Test> db.test.znajdować().Foreach (printJson)

Wniosek

Ten artykuł pomaga korzystać z operatora „$ set” podczas pracy w środowisku MongoDB. Wyjaśnia użycie operatora „$ set” w instrukcji aktualizacji MongoDB we wstępie. Następnie odrzucane są trzy różne, ale bardzo łatwe do wdrożenia przykłady, aby zaktualizować proste pole jednopartość, zaktualizować pole wieloaranckie i pole z wartościami typu tablicy w bazie danych MongoDB za pomocą „$ SET” operator.