MongoDB $ addToset

MongoDB $ addToset
Operator $ AddToset jest jednym z tych operatorów tablicy (), które MongoDB oferuje aktualizację wartości pola tablicy w dokumentach. Operator $ AddToset wymagał unikalnych wpisów do dodania lub dołączenia w określonym polu tablicy. Jeśli wartość jest już obecna w danej tablicy, $ addToset pobiera dokładną tablicę bez modyfikacji. Operator $ AddToSet musi upewnić się, że tablica nie będzie zawierać żadnych duplikatów elementów po ich aktualizacji, ale możliwe jest, aby kolejność elementów tablicy zmieniła się po dodaniu wartości.

Jak korzystać z operatora MongoDB $ AddToset?

Operator $ AddToset jest stosowany w metodzie aktualizacji () MongoDB. Operator $ AddToSet wprowadza parametr „pole” i „dodanie”. „Pole” wskazuje kolumnę dokumentu do aktualizacji. „Dodanie” jest parametrem przypisanym wartość do wstawienia do tablicy do odpowiedniego pola. Przed użyciem operatora $ AddToset w zapytaniu MongoDB musimy ustalić kolekcję. Tutaj mamy kolekcję „kursów” MongoDB, do których zastosowaliśmy zapytanie InsertMany (), aby dodać następujące dokumenty.

db.Kursy.wstrząs

„_id”: 1,
„Pole”: „It”,
„Kursy”: [„Rozwój stron internetowych”, „baza danych”, „Python”],
„Credithours”: [5, 2, 7]
,

„_id”: 2,
„Pole”: „CS”,
„Kursy”: [„Python”, „Networking”, „Computing”],
„Credithours”: [8, 4, 2]
,

„_id”: 3,
„Pole”: „se”,
„Kursy”: [„Data Science”, „Python”, „IBM”],
„Credithours”: [2, 9, 5]

])

Wynik dodania dokumentów do kolekcji „kursów” przedstawiono poniżej.

potwierdzony: true, InsertedIds: '0': 1, '1': 2, '2': 3

Przykład nr 1: Zapytanie operatora $ AddToset w MongoDB, aby dołączyć wartość w polu tablicy

Tutaj dołączamy nową wartość w terenie za pomocą operatora $ AddToset. W zapytaniu MongoDB zastosowaliśmy metodę aktualizacji () w kolekcji „kursów”. Metoda aktualizacji () dodatkowo wprowadza warunek „pole”: „cs” przed operatorem $ addToset. Po pierwsze, dokument zostanie przeszukany, który zostanie ustawiony z wartością „CS” w stosunku do kolumny „pole” w kolekcji. Gdy dokument zostanie dopasowany, operator $ AddToset będzie kontynuowany z operatorem dołączania wartości. Zapewniliśmy operatora $ addToset z „kursami” tablicy, aby dołączyć nowy element tablicy wartości.

db.Kursy.aktualizacja („pole”: „cs”, $ addToset: „kursy”: „konta”)

Dane wyjściowe pokazuje, że nowy element tablicy „Konta” jest dołączany w terenie „Kursy”.


Uznany: prawda,
Wstawka: NULL,
MatchedCount: 1,
ModifiedCount: 1,
upsertedCount: 0

Zbadaliśmy naszą kolekcję, aby potwierdzić modyfikację. Pole tablicy „kursy” są pomyślnie modyfikowane za pomocą nowej wartości „rachunki”.


_id: 2,
Pole: „CS”,
Kursy: [„Python”, „Networking”, „Computing”, „rachunki”],
Credithours: [8, 4, 2]

Przykład nr 2: Zapytanie operatora $ AddToset w MongoDB, aby dodać nowe pole

W powyższym zapytaniu operator $ AddToset jest wykorzystywany do dołączenia nowej wartości w istniejącej polu. Ponadto możemy wstawić nowe pole do dokumentu za pomocą operatora $ addToset w metodzie aktualizacji (). Miejmy następujące zapytanie MongoDB. Ustawiliśmy metodę aktualizacji (), w której wyrażenie „„ _id ”: 2”, aby dopasować ten konkretny dokument. Następnie przypisaliśmy operatora $ AddToset, aby dodać nowe pole wraz z nową wartością. Tutaj dodaliśmy „nauczyciel” z tablicy, która nie istnieje w dokumentach zbioru „kursów”. Pole „Nauczyciele” jest przypisane szeregowi nazw nauczycieli.

db.Kursy.aktualizacja(
„_id”: 2,
$ addToset: „Nauczyciele”: [„Mr Sam”, „MS Alice”]
)

„ModifiedCount: 1” w poniższym wyniku pokazuje, że dokument jest aktualizowany o nowym dziedzinie „nauczyciele” i wartości tablicy.


Uznany: prawda,
Wstawka: NULL,
MatchedCount: 1,
ModifiedCount: 1,
upsertedCount: 0

Teraz, gdy dokumenty zostaną sprawdzone, pojawił się z nowymi wynikami aktualizacji w następujący sposób:


_id: 2,
Pole: „CS”,
Kursy: [„Python”, „Networking”, „Computing”, „rachunki”],
Credithours: [8, 4, 2, 7, 3],
Nauczyciele: [„Mr Sam”, „MS Alice”]]

Przykład nr 3: Zapytanie operatora $ AddToset w MongoDB, aby dodać tablicę w istniejącej tablicy

Dodatkowo możemy dodać całą nową tablicę do już obecnej tablicy za pomocą operatora $ AddToset. Cała tablica zostaje dołączona jako osobna tablica. Tutaj podaliśmy zapytanie do tego stwierdzenia. Mamy metodę aktualizacji (), do której przypisaliśmy warunek „_id”: 3 jako pierwszy parametr. Tak więc dokument z numerem „_id” „3” zostanie dopasowany do warunku aktualizacji, a następnie następny parametr będzie kontynuowany. Następnym parametrem metody aktualizacji () jest metoda „$ addToset” do dodawania tablicy do istniejącej tablicy. Określiliśmy tablicę „[3, 1, 2]” w polu „Credithours”. Ta tablica zostanie dodana jako osobna tablica w istniejącym szeregu pola „Credithours”.

db.Kursy.aktualizacja(
„_id”: 3,
$ addToset: "credithours": [3, 1, 2]
)

Poniższe informacje wskazują, że tablica jest dodawana do obecnej tablicy:


Uznany: prawda,
Wstawka: NULL,
MatchedCount: 1,
ModifiedCount: 1,
upsertedCount: 0

Dokument pokazany poniżej jest aktualizowany o nowej modyfikacji, którą dokonaliśmy.


_id: 3,
Pole: „se”,
Kursy: [„Data Science”, „Python”, „ibm”],
Credithours: [2, 9, 5, [3, 1, 2]]

Przykład nr 4: Zapytanie operatora $ AddToset w MongoDB, aby dodać wiele wartości

$ AddToset umożliwia nam dodanie więcej niż jednej wartości w tym samym czasie w tablicy, biorąc $ każdy operator jako parametr. Każdy operator $ jest wykorzystywany do dołączania wielu wpisów do dostarczonej tablicy. Tutaj podaliśmy zapytanie, w którym musimy zaspokoić warunek „„ _id ”: 2” metody aktualizacji (). Następnie mamy operator $ AddToset, w którym zastosowaliśmy $ każdy operator, aby dodać dwie wartości „7” i „3” w terenie „Credithours”.

db.Kursy.aktualizacja ("_id": 2, $ addToset: "credithours": $ każdy: [7,3]);

Wykonane powyższe zapytanie wyświetliło wyjście potwierdzenia, które wskazuje, że wartości są wstawiane do dopasowanego dokumentu.


Uznany: prawda,
Wstawka: NULL,
MatchedCount: 1,
ModifiedCount: 1,
upsertedCount: 0

Dwa elementy tablicy „7” i „3” są dołączane w dziedzinie tablicy „Credithours”.


_id: 2,
Pole: „CS”,
Kursy: [„Python”, „Networking”, „Computing”, „rachunki”],
Credithours: [8, 4, 2, 7, 3]

Przykład nr 5: Zapytanie operatora $ AddToset w MongoDB, aby dodać istniejącą wartość

Gdy wartość tablicy jest już obecna, próbujemy ponownie wstawić tę wartość w polu, operator $ Addsetto nic nie robi. Innymi słowy, $ addToset dodaje wartość tylko wtedy, gdy ktoś jeszcze nie istnieje. Tam podaliśmy zapytanie w skorupce MongoDB, w której zastosowaliśmy metodę aktualizacji (). W metodzie aktualizacji () przekazaliśmy warunek, że dokument ma „_id” równy „1”. Następnie zadzwoniliśmy do operatora $ AddToset, który przyjmuje „kursy” pola z „dodaniem” wartości parametrów „baza danych”. „Baza danych” istnieje już w określonym dokumencie, więc operator $ AddToset nie zaktualizuje tej wartości.

db.Kursy.aktualizacja(
_id: 1,
$ addToset: „kursy”: „baza danych”
)

Widzimy, że opcja „ModifiedCount” ma wartość „0”, która pokazuje, że dokument nie jest modyfikowany.


Uznany: prawda,
Wstawka: NULL,
MatchedCount: 1,
ModifiedCount: 0,
upsertedCount: 0

Dopasowany dokument jest również sprawdzany poniżej, aby wyświetlić, że już istniejące wartości nie mogą być ponownie dodane przez $ AddToset Operator.


_id: 1,
Pole: „to”,
Kursy: [„Rozwój stron internetowych”, „baza danych”, „Python”],
Credithours: [5, 2, 7, 3]

Wniosek

Artykuł dotyczy dyskusji operatora MongoDB $ AddToset. Widzieliśmy operację $ addToset w ramach zapytania aktualizacji MongoDB. Pierwszym przykładem jest $ AddToset Operator dołączał unikalną wartość w tablicy dokumentu. Następnie dodaliśmy pole nieistniejące z operatorem $ AddToset. Nowa tablica jest również dołączona do już określonej tablicy. Następnie dołączyliśmy tablicę z wieloma wpisami, a następnie próbowaliśmy wstawić duplikat wartości do tablicy do operatora $ AddToset.