Operacje CRUD w MongoDB: samouczek z przykładami

Opublikowany: 2020-02-05

Wraz z ciągłą ewolucją sieci WWW widzimy, jak MongoDB i inne bazy danych obiektów dokumentów stają się alternatywą dla konwencjonalnych baz danych opartych na SQL. Te bazy danych obiektów dokumentów mają kilka zalet w porównaniu z bazami danych SQL, a do najważniejszych z nich należą skalowalność i elastyczność.

Należy zauważyć, że dane w MongoDB są przechowywane w formacie dokumentów w formacie binarnym JSON (BSON). Ten format może wymagać przechowywania tablic osadzonych dokumentów lub wartości. Dokument tworzy rekord w MongoDB, który jest strukturą utworzoną z par wartości i pól.

Omówmy teraz tworzenie, aktualizowanie, pobieranie i usuwanie operacji lub operacji CRUD w MongoDB. Funkcje te można ogólnie sklasyfikować jako funkcje modyfikacji danych w MongoDB. Można ich użyć tylko do jednej kolekcji. Insert to funkcja w MongoDB, która może służyć do dodawania danych do bazy danych.

Spis treści

Lista operacji CRUD w MongoDB

1. Tworzenie dokumentów

Jak tworzone są obiekty za pomocą MongoDB? MongoDB używa BSON – binarnej reprezentacji JSON – do jego przechowywania. Tak więc dość łatwo zrozumieć, że metody używane do wykonywania różnych operacji w bazie danych mają coś wspólnego z JavaScript. Pozwól nam stworzyć użytkownika i kolekcję użytkowników. Należy również zauważyć, że tabele w SQL są odpowiednikami kolekcji w MongoDB.
db.users.save({imię:”Mike”, praca:”lekarz”,e-mail:”imię@przykład.com”})
Ten przykład używa MongoDB save() do zapisywania danych w kolekcji.

2. Wstawianie dokumentów

  • Wstaw wsadowy : Ta funkcja umożliwia jednoczesne dodanie listy dokumentów do bazy danych. Partia w określonym momencie może zawierać setki, a nawet tysiące dokumentów. Dzięki możliwości wstawiania wielu dokumentów ta funkcja działa znacznie szybciej niż inne funkcje wstawiania. Wstawka wsadowa nie wymaga zgłaszania indywidualnych próśb o setki lub tysiące dokumentów. Zamiast tego działa jako jedno żądanie protokołu kontroli transmisji (TCP). Czas potrzebny podczas wstawiania jest zawsze znacznie krótszy, ponieważ nie jest zaangażowana żadna czynność przetwarzania nagłówka. Każdy dokument, który trzeba wstawić, posiada nagłówek, który przekazuje do bazy danych operację, którą należy wykonać. Przeważnie wstawki wsadowe służą do przechowywania danych z czujników i dzienników serwera.
  • Mongoimport : Mongoimport to narzędzie wiersza poleceń, które jest używane zamiast wstawiania wsadowego do podstawowych danych z MySQL, Oracle lub dowolnego innego systemu zarządzania relacyjną bazą danych (RDBMS). Czasami może być konieczne wprowadzenie zmian w dokumentach – dodanie niestandardowego identyfikatora – przed zapisaniem go w MongoDB. Kolejną ważną rzeczą, o której powinieneś wiedzieć, jest to, że MongoDB akceptuje tylko wiadomości o wielkości do 16 MB. Tak więc wstawka wsadowa ogranicza liczbę wiadomości, które może mieć.
  • Nieuporządkowane wstawianie zbiorcze : W tej funkcji MongoDB zapisuje operacje bez przestrzegania kolejności. W przypadku wystąpienia błędu będzie kontynuował operacje zapisu, które pozostały bez przerwy. MongoDB tworzy grupę nieuporządkowanych operacji podczas ich wykonywania. MongoDB może również dążyć do zwiększenia wydajności, zmieniając kolejność wymienionych operacji przed wykonaniem. Tak więc aplikacje nie muszą polegać na sekwencji podczas rozważania tej funkcji w przypadku wstawiania zbiorczego. Bulk.getOperations() może służyć do sprawdzenia, jak MongoDB grupuje zestaw operacji, a następnie je wykonuje. Za pomocą tego polecenia można dodać trzy dokumenty jednocześnie, ale bez żadnego zamówienia.
  • Zamówione wstawianie zbiorcze: W tej funkcji MongoDB podąża za sekwencją podczas zapisywania operacji. Błąd podczas dowolnej operacji zapisu powoduje, że MongoDB nie wykonuje innych operacji zapisu. Zlecone operacje są pogrupowane ze względu na ich ciągłość i rodzaj. Sąsiadujące uporządkowane operacje należą do tej samej klasy są pogrupowane.

Na przykład, jeśli uporządkowana lista zawiera jedną operację wstawiania, po której następuje operacja usuwania, po której następują dwie operacje aktualizacji, MongoDB utworzy trzy grupy, aby je ułożyć. Grupa pierwsza będzie składać się z jednej operacji wstawiania. Druga grupa będzie miała jedną operację usuwania. Trzecia grupa połączy te dwie operacje aktualizacji.

Oczekuje się, że przyszłe wydania MongoDB będą odpowiednio radzić sobie z tym zachowaniem. Każda grupa uporządkowanych list zbiorczych nie może mieć więcej niż 1000 operacji. Jeśli liczba przekroczy ten maksymalny limit, MongoDB tworzy mniejsze grupy składające się z 1000 lub mniej operacji, aby przestrzegać tego limitu. Jeśli więc zamówionych jest 7000 operacji masowych, będzie siedem grup, z których każda składa się z 1000 operacji masowych. Aby zobaczyć, jak odbywa się grupowanie i wykonanie, najpierw wykonaj polecenie wstawiania zbiorczego, a następnie użyj polecenia Bulk.getOperations. Za pomocą tego polecenia można dodać trzy dokumenty w kolejności.

3. Odzyskiwanie/czytanie dokumentów

Każde zapytanie w MongoDB skierowane jest do konkretnych dokumentów. MongoDB identyfikuje dokumenty na podstawie warunku zdefiniowanego w zapytaniu, a następnie zwraca te dokumenty do zamierzonego miejsca przeznaczenia. Kwerenda pobierania dokumentu może zawierać projekcję, która wymienia warunki lub kryteria pasujące do pól dokumentu, który ma zostać zwrócony.

Zapytania można modyfikować, umieszczając pominięcia, limity i porządki sortowania.

Omówmy teraz, w jaki sposób określa się warunek równości. Użyj polecenia findOne(), aby zidentyfikować pierwszy rekord dokumentu. Aby wyświetlić wyniki w odpowiednim formacie, możesz użyć metody ładnej.

Użyj zapytania db.items.find().pretty(), aby zidentyfikować wszystkie dokumenty wymienione w kolekcji i wyświetlić je w standardowym formacie. Możesz użyć pustego zapytania, aby wybrać wszystkie dokumenty – db.items.find( {} ) – to zapytanie ma na końcu pustą klauzulę zapytania – dzięki czemu zidentyfikuje wszystkie dokumenty wymienione w kolekcji.

Nieokreślenie metody find w dokumencie zapytania i użycie pustego zapytania spowoduje uzyskanie tego samego wyniku. Tak więc zapytania db.items.find( {} ) i db.items.find() są równoważne pod względem wyniku, do którego są używane.

Możesz manipulować zapytaniem i użyć metody kursora zapytania, podczas gdy metoda count pozwala sprawdzić liczbę dokumentów w kolekcji, które pasują do zapytania. db.items.count()

4. Aktualizacja dokumentów

Musisz użyć metody update(), aby zaktualizować dokumenty w MongoDB. Metoda aktualizacji składa się z dwóch ważnych elementów – zapytania i aktualizacji. Jako pierwszy pojawia się parametr zapytania, a po nim parametr aktualizacji. Oto przykład

db.users.update({imię:”Mike”}, {wiek: 32})

Nie jest to jednak właściwy sposób aktualizowania pary wartości, którą w tym przypadku jest wiek. Dzięki temu nadpiszesz wszystko w dokumencie. Jedyna rzecz, która pozostanie w tym wieku. Kiedy więc musimy zaktualizować pojedynczą parę wartości w całym dokumencie, musimy użyć kilku słów kluczowych.

db.users.update({imię: „Mike”}, { $set: { wiek: 28}})

To niczego nie zastąpi. Zachowasz wszystkie informacje zawarte w dokumencie. Zaktualizowana zostanie tylko wartość wieku.

5. Usuwanie dokumentów

Użyj metody remove – db.courses.remove() – aby usunąć dokumenty z kolekcji. To polecenie usunie wszystkie dokumenty z danej kolekcji. To, czego nie usunie, to indeksy i sama kolekcja. Czasami polecenie remove może przyjąć zapytanie jako parametr. Jeśli chcesz usunąć dokumenty spełniające kryteria wymienione w zapytaniu, użyj polecenia db.items.remove({„item”: „Pen”).

Użyj polecenia db.items.remove({” item” : „Bag},1), aby usunąć tylko jeden dokument z kolekcji. Aby usunąć wszystkie dokumenty, kolekcję i indeksy, użyj polecenia db.courses.drop() (metoda drop).

Wniosek

Jeśli chcesz dowiedzieć się więcej o Big Data, sprawdź nasz program PG Diploma in Software Development Specialization in Big Data, który jest przeznaczony dla pracujących profesjonalistów i zawiera ponad 7 studiów przypadków i projektów, obejmuje 14 języków programowania i narzędzi, praktyczne praktyczne warsztaty, ponad 400 godzin rygorystycznej pomocy w nauce i pośrednictwie pracy w najlepszych firmach.

Ucz się kursów rozwoju oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Poprowadź rewolucję technologiczną opartą na danych

400+ godzin nauki. 14 języków i narzędzi. Status absolwenta IIIT-B.
Zaawansowany program certyfikacji w Big Data z IIIT Bangalore