Jak używać zapytania upsert w MongoDB

Jak używać zapytania upsert w MongoDB
Bazy danych są szeroko podzielone na typy SQL i NoSQL. MongoDB należy do drugiej kategorii i obsługuje silny język zapytania do przetwarzania danych. Zapytanie Upsert w MongoDB służy do wspomagania metod aktualizacji i wymiany. Tworzy nowy dokument, jeśli warunek nie jest spełniony metodami aktualizacji/wymiany. Pewne rozszerzone metody aktualizacji są również obsługiwane przez Upsert zapytanie i obejmują one FindAndModify, updateOne (), zamiennik ().

W tym artykule wyjaśniono użycie zapytania Upsert z poziomu podstawowego do zaawansowanych. Zaawansowane użycie tego zapytania zostanie wyjaśnione przez zastosowanie upsert za pomocą kilku metod.

Jak działa zapytanie w MongoDB

Opcja upsert ma następującą składnię:

Upsert:

Wartość logiczna może być prawda fałsz. Domyślnie Upsert ma FAŁSZ wartość.

Jak używać zapytania upsert z metodą aktualizacji

W tej sekcji wyjaśniono zapytanie upsert z wieloma poleceniami. Najpierw skorzystajmy z metody aktualizacji. W jaki sposób aktualizacja działa w stanie, w którym dokument, który chce, nie istnieje?

Kolekcja personelu zawiera następujące dokumenty:

> db.personel.znajdować().ładny()

Poniżej wspomniane polecenie próbuje zaktualizować dokument (_id: 3) To nie istnieje, więc zapytanie o aktualizację Upsert ani aktualizacja dowolny dokument.

> db.personel.aktualizacja (_ id: 3, nazwa: „Alen”)

Teraz dodajmy Upsert opcja i ustaw jego wartość na PRAWDA w tym samym stanie, jak wyjaśniliśmy powyżej. Polecenie wspomniane poniżej próbuje zaktualizować dokument, który pasuje do nazwy: „Sam”Pole, ale dokument nie istnieje.

Ze wyjścia obserwuje się, że liczba wysokich wartości dokumentów jest „1”.

> db.personel.aktualizacja (name: „Sam”, desig: „Team-Lead”, upsert: true)

Aby to zweryfikować, sprawdźmy dokumenty w środku „personel”Kolekcja za pomocą następującego polecenia:

> db.personel.znajdować().ładny()

Notatka: Metoda Pretty () służy do uzyskania wyjścia w wyraźniejszym formacie.

Jak używać zapytania upsert z metodą aktualizacji

Opcję Upsert można zastosować z metodą aktualizacji, aby wstawić dokument, jeśli dopasowanie warunku nie powiedzie się. „„personel”Kolekcja zawiera trzy dokumenty i chcemy dodać dokument (_id: 3) To nie istnieje. Robić Upsert Funkcjonalne, musisz ustawić jego wartość na true, powyższy scenariusz jest wykonywany, wydając polecenie wspomniane poniżej:

> db.personel.updateOne (_ id: 3, $ set: name: „Sam”, desig: „Team-Lead”, upsert: true)

W powyższym poleceniu użyliśmy „_id: 3„Aby zatem dopasować dokument, dokumentowi nadrzędnemu przypisano unikalny identyfikator”_id: 3". Ponadto możesz zweryfikować Upsert Działanie poprzez uzyskanie treści personel kolekcja:

> db.personel.znajdować().ładny()

Jak używać zapytania upsert za pomocą metody zastępczej

Metoda zastępcza zastępuje wartość (wartości) pola, jeśli dopasowanie się powiodło. A jeśli dopasowanie się nie powiodło, wówczas Upsert można użyć do dodania nowego dokumentu.

W poniższym podanym poleceniu, zamień Polecenie próbuje zastąpić dokument, który ma pole „Nazwa: Tom„(Co tak naprawdę nie istnieje). Wartość wyższa jest „PRAWDA„, Więc doda nowy dokument z domyślnym unikalnym identyfikatorem zawierającym pole”Nazwa: Jobes" I "Desig: Autor„:

> db.personel.zamiennik (name: „tom”, name: „Ćwiczenie”, desig: „autor”, upsert: true)

Jak używać Upsert z metodą FindAndModify

FindandModify () modyfikuje dokument i działa prawie tak samo jak aktualizacja() Metoda, ale FindandModify () modyfikuje tylko jeden dokument, który pasuje do pierwszego, podczas gdy aktualizacja() Metoda aktualizuje wszystkie pasujące dokumenty.

Polecenie napisane poniżej pokazuje użycie Uspert za pomocą metody FindandModify (). Jak FindandModify () Nie pasuje do żadnego dokumentu, dlatego pojawia się nowy dokument:

„„zapytanie”Słowo kluczowe używane w poleceniu próbuje dopasować”_id: 5”I próbuje ulepszyć„num„Pole według wartości”15„:

> db.personel.FindAndModify (query: _id: 5, aktualizacja: $ inc: num: 15, upsert: true)

Zapytanie powraca „zero”Ponieważ nie użyliśmy sort w poleceniu, a także żadnych dopasowań dokumentów. Jeśli jednak spojrzysz na treść „personel„Kolekcja, znajdziesz nowo nadawany dokument o wartości identyfikacyjnej”_id: 5„:

> db.personel.znajdować().ładny()

Wniosek

MongoDB ma długą listę poleceń i zapytań do aktualizacji lub zastąpienia danych w dokumentach kolekcji. Oprócz tych poleceń, zapytanie upsert pomaga w tych poleceniach aktualizacji/zastępowania w celu wstawienia nowego dokumentu, jeśli polecenia aktualizacji/wymiany nie pasują do dowolnego dokumentu. W tym przewodniku z serii MongoDB zapewniliśmy wykorzystanie zapytania upsert z kilkoma poleceniami w MongoDB. Po przeanalizowaniu mechanizmu roboczego UPSert stwierdza się, że Upsert działa jako metoda wstawka dla kilku metod aktualizacji/usuwania w MongoDB.