MongoDB $ sinc operator

MongoDB $ sinc operator

W programowaniu zwykle używamy operatorów licznika, przyrostu i zmniejszenia terminów do dodania lub odejmowania określonej wartości dla zmiennej lub liczby pętli. Podobnie jak inny język programowania, MongoDB wymyślił go, w tym operator „$ Inc”, aby dodać określoną wartość do już istniejącej wartości w polu. Operator „$ Inc” nie tylko zwiększa wartość, ale może również zmniejszyć wartość. Wartość, którą należy dodać do określonego pola, może być dodatnia lub ujemna według sytuacji - wartość dodatnią do dodania i ujemnego do odejmowania. Ten artykuł pomaga korzystać z operatora „$ Inc” w poleceń MongoDB Shell.

Wygeneruj kolekcję w MongoDB

Pierwszym krokiem w kierunku użycia operatora „$ Inc” w MongoDB jest posiadanie danych w bazie danych, w których można zastosować operator „$ Inc”. Dlatego powinniśmy mieć kolekcję bazy danych w naszym systemie MongoDB, aby zacząć go używać. W tym celu generujemy pustą nazwę kolekcji „test” po użyciu funkcji „CreateCollection” w konsoli MongoDB.

Test> db.CreateCollection („Test”)

Potwierdzenie „OK: 1” pokazuje, że pusta kolekcja „test” jest teraz generowany. Aby to sprawdzić, wypróbuj zapytanie o funkcję „Find ()” wraz z nazwą kolekcji jak na następującej ilustracji. W tej chwili pokazuje, że ta kolekcja nie ma rekordów.

Test> db.Test.znajdować()

Dodaj rekordy do kolekcji

Drugim krokiem w kierunku użycia operatora „$ Inc” w MongoDB jest dodanie rekordów do nowo wygenerowanej kolekcji „Test”. W tym celu wyrzuciliśmy zapytanie funkcyjne insertMany (), które poprzedza nazwę kolekcji „test”. Do tej kolekcji dodano 3 rekordy. Każda z jego rekordów zawiera 3 pojedyncze pola - tytuł identyfikatora, wiek i 1 pole formatu dokumentów. Pola w polu takim jak „wynik” i „pozycja” znajdują się w polu „Data”.

Test> db.Test.INSERTMANY ([id: 1, tytuł: „Eden”, wiek: 22, dane: partytura: 450, pozycja: 2,
… Id: 2, tytuł: „Bella”, wiek: 21, dane: partytura: 498, pozycja: 1,
… Id: 3, tytuł: „Lia”, wiek: 22, dane: partytura: 442, pozycja: 3])

Wyjście obrazu wcześniej przywiązane pokazuje, że wstawienie odbywa się z powodzeniem na naszym końcu. Teraz nadszedł czas, aby wyświetlić te dodane rekordy. Aby go wyświetlić, zapytanie Funkcji „Znajdź” MongoDB, które jest poprzedzone nazwą kolekcji „Test”, pomaga nam, ponieważ już go użyliśmy w poprzednim przykładzie. 3 rekordy kolekcji „testowej” są wyświetlane, jak pokazano następująco:

Test> db.Test.znajdować()

Przykład 1: Zmodyfikuj pojedyncze pole w jednym rekordzie

Począwszy od tego przykładu, używamy operatora „$ Inc”, aby sumować wartość w jednym polu dowolnego rekordu. Aby to zrobić, musisz wypróbować funkcję „aktualizację” w instrukcji „DB”, a następnie kolekcji „test”. To polecenie powinno rozpocząć się od identyfikacji numeru rekordu za pośrednictwem jego określonego pola, „id: 1”. Następnie kolejny zestaw zaczyna się od użycia operatora „$ Inc”, który jest stosowany do określonego pola o pewnej wartości numerycznej. Ta wartość numeryczna jest zwiększana w rzeczywistej wartości pola, jaka jest „wiek”. Wykonanie tego zapytania wyświetla potwierdzenie.

Test> db.Test.aktualizacja (id: 1, $ inc: wiek: -1)

Przyprowadźmy rekord „1” z kolekcji „test” za pomocą „id: 1” jako identyfikacji w funkcji „Znajdź” zapytania „DB”. Wyjście pokazuje, że pole „wieku” jest skutecznie zwiększane o wartość „-1” dla zapisu „1”, i.mi. Wiek = 22 + (-1) = 21.

Test> db.Test.Znajdź (id: 1)

Przykład 2: Zmodyfikuj wiele pól w jednym rekordzie

Użyjmy operatora „$ Inc” w kolekcji „testu”, aby zwiększyć wiele wartości pola, w tym pola typu dokumentów. Pamiętaj, że te przyrosty na wielu polach dotyczą tylko jednego rekordu w kolekcji „testu”. Tak więc funkcja updateOne () jest ponownie wykorzystywana do aktualizacji numeru rekordu „2” z kolekcji „Test” określonej przez „ID: 1”. Operator „$ Inc” jest stosowany do pola „Age” jednorazowego, aby dodać swoją poprzednią wartość z „-1”. Ponadto pola „wynik” i „pozycja” w polu „Data” Dokument „Data” są zwiększane odpowiednio przez „580” i „2”, zgodnie z wyjściem przy użyciu produktu „kropka”.

Test> db.Test.aktualizacja (id: 2, $ inc: wiek: -1, ”dane.Wynik „: 580”, dane.Pozycja ": 2)

Po zmodyfikowaniu rekordu „2” kolekcji „test”, dobrze przyjrzymy się jej osobno za pomocą funkcji „Znajdź”, która jest używana w instrukcji „DB”, wspominając „ID: 2”, aby rekord będzie zidentyfikowane. Wartość pojedynczego rekordu „wiek” wraz z pola wyników i pozycji w polu zagnieżdżonym „danych” jest skutecznie zwiększana przez operatora „$ Inc”.

Test> db.Test.Znajdź (id: 2)

Przykład 3: Zmodyfikuj wiele pól w wielu rekordach

Po zmodyfikowaniu pojedynczych i wielu rekordów w jednym rekordzie, zmodyfikujmy teraz wiele pola wielu rekordów w jednym kolekcji za pomocą operatora „$ Inc”. W tym celu modyfikujemy zapytanie „aktualizacja”. Zamiast korzystać z funkcji „UpdateOne”, odrzuciliśmy funkcję „UpdateMany”, aby zmodyfikować więcej niż 1 rekord kolekcji „testowej”. Ta instrukcja „DB” może użyć pola „ID” dla wielu rekordów lub po prostu pozostawić wsporniki kręcone „” puste, aby zmodyfikować wszystkie rekordy kolekcji. Operator „$ Inc” modyfikuje pola wieku, wyniku i pozycji wszystkich 3 rekordów z rzędu dla kolekcji „testu”. Zmodyfikowana liczba „3” pokazuje potwierdzenie po wykonaniu tego zapytania.

Test> db.Test.UpdateMny (, $ inc: wiek: 1, „Dane.Wynik „: 50, dane.Pozycja ": -1)

Po zmodyfikowaniu wielu pól wielu rekordów po zastosowaniu operatora „$ Inc”, naszym prawem jest obejrzenie tych zmodyfikowanych rekordów za pomocą instrukcji „DB”. Po wyświetleniu wszystkich 3 rekordów kolekcji „testowej” stwierdzamy, że wszystkie wcześniej określone pola są zwiększane o określone wartości dla wszystkich 3 rekordów.

Test> db.Test.znajdować()

Wniosek

Ten artykuł zawiera porównanie operatorów przyrostowych innych języków programowania oraz operatora „$ Inc” MongoDB we wstępnym akapicie. Po wypróbowaniu niektórych przykładów zapytania w skorupce MongoDB, zilustrowaliśmy użycie operatora „$ Inc” w więcej niż 1 cel. Pierwsze dwa instancje dotyczą przyrostu pojedynczego pola i wielu pól (w tym pola formatu dokumentu) w ramach jednego rekordu. Podczas gdy ostatnia ilustracja pomaga zwiększyć wiele pól w wielu rekordach dowolnej bazy danych w najprostszy możliwy sposób.