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.