Czym jest MongoDB? Architecture, funkcje i przykład

⚡ Inteligentne podsumowanie

MongoDB to zorientowana na dokumenty baza danych NoSQL, używana do przechowywania dużych ilości danych, wykorzystująca kolekcje i dokumenty zamiast tabel i wierszy. Ten materiał wyjaśnia MongoDB funkcje, przykład dokumentu, kluczowe elementy architektury, powody korzystania, modelowanie danych i czym różni się od relacyjnej bazy danych.

  • 📄 Model dokumentu: Dane są przechowywane w postaci dokumentów typu klucz-wartość wewnątrz kolekcji, a nie tabel.
  • 🧩 Elastyczny schemat: Pola są tworzone na bieżąco, bez żadnej zdefiniowanej struktury.
  • 🏗️. Główne elementy: _id, kolekcja, dokument, pole, kursor, baza danych i JSON.
  • ⚙️ Dlaczego go używać: Doraźne zapytania, indeksowanie, replikacja i partycjonowanie w celu zapewnienia skalowalności.
  • 🔄 W porównaniu z RDBMS: Kolekcje zastępują tabele, a osadzone dokumenty zastępują połączenia.

Czym jest MongoDB

Czym jest MongoDB?

MongoDB to zorientowana na dokumenty baza danych NoSQL używana do przechowywania dużych ilości danych. Zamiast używać tabel i wierszy jak w tradycyjnych relacyjnych bazach danych, MongoDB korzysta ze zbiorów i dokumentów. Dokumenty składają się z par klucz-wartość, które stanowią podstawową jednostkę danych MongoDBKolekcje zawierają zbiory dokumentów i funkcji, co jest odpowiednikiem tabel relacyjnej bazy danych. MongoDB to baza danych, która wyszła na jaw około połowy 2000 roku.

MongoDB Udogodnienia

  1. Każda baza danych zawiera kolekcje, które z kolei zawierają dokumenty. Każdy dokument może być inny i mieć różną liczbę pól. Rozmiar i zawartość poszczególnych dokumentów mogą się od siebie różnić.
  2. Struktura dokumentu jest bardziej zgodna ze sposobem, w jaki programiści konstruują swoje klasy i obiekty w odpowiednich językach programowania. Programiści często mówią, że ich klasy nie są wierszami i kolumnami, ale mają przejrzystą strukturę z parami klucz-wartość.
  3. Wiersze (lub dokumenty, jak nazywa się w MongoDB) nie wymagają wcześniejszego zdefiniowania schematu. Zamiast tego pola można tworzyć na bieżąco.
  4. Model danych dostępny w ramach MongoDB umożliwia łatwiejsze reprezentowanie relacji hierarchicznych, przechowywanie tablic i przechowywanie innych, bardziej złożonych struktur.
  5. Skalowalność - MongoDB Środowiska są bardzo skalowalne. Firmy na całym świecie zdefiniowały klastry, z których niektóre obsługują ponad 100 węzłów z milionami dokumentów w bazie danych.

MongoDB Przykład

Poniższy przykład pokazuje, w jaki sposób można modelować dokument MongoDB.

  1. Pole _id jest dodawane przez MongoDB umożliwiający jednoznaczną identyfikację dokumentu w zbiorze.
  2. Można zauważyć, że dane zamówienia (ID zamówienia, produkt i ilość), które w systemie RDBMS są zazwyczaj przechowywane w osobnej tabeli, w rzeczywistości są przechowywane jako osadzony dokument w samej kolekcji. MongoDB. To jedna z kluczowych różnic w sposobie modelowania danych w MongoDB.

MongoDB Przykład

Kluczowe komponenty MongoDB Architektura

Poniżej znajduje się kilka powszechnie używanych terminów MongoDB:

  1. _ID – Jest to pole wymagane w każdym MongoDB dokument. Pole _id reprezentuje unikalną wartość w pliku MongoDB dokument. Pole _id jest jak klucz podstawowy dokumentu. Jeśli utworzysz nowy dokument bez pola _id, MongoDB automatycznie utworzy pole. Na przykład, jeśli spojrzymy na powyższą tabelę „klienci”, MongoDB doda 24-cyfrowy, unikalny identyfikator do każdego dokumentu w kolekcji.
_ID Identyfikator klienta Nazwa klienta IDZamówienia
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevora Smitha 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. – To jest grupaping of MongoDB dokumenty. Kolekcja jest odpowiednikiem tabeli utworzonej w dowolnym innym systemie RDBMS, takim jak Oracle lub MS SQL. Kolekcja istnieje w ramach jednej bazy danych. Jak widać we wstępie, kolekcje nie narzucają żadnej struktury.
  2. Kursor – Jest to wskaźnik do zestawu wyników zapytania. Klienci mogą iterować po kursorze, aby pobrać wyniki.
  3. Baza danych – To kontener dla kolekcji, podobnie jak w RDBMS, gdzie jest to kontener dla tabel. Każda baza danych otrzymuje własny zestaw plików w systemie plików. MongoDB serwer może przechowywać wiele baz danych.
  4. dokument – Zapis w MongoDB Kolekcja jest zasadniczo nazywana dokumentem. Dokument z kolei będzie się składał z nazw pól i wartości.
  5. Pole – Para nazwa-wartość w dokumencie. Dokument ma zero lub więcej pól. Pola są analogiczne do kolumn w relacyjnych bazach danych. Poniższy diagram przedstawia przykład pól z parami klucz-wartość. W poniższym przykładzie CustomerID i 11 to jedna z par klucz-wartość zdefiniowanych w dokumencie.

Kluczowe komponenty MongoDB Architektura

  1. JSON – Jest to tzw JAVASCRIPT Notacja obiektu. Jest to czytelny dla człowieka, zwykły format tekstowy do wyrażania ustrukturyzowanych danych. JSON jest obecnie obsługiwany w wielu językach programowania.

Krótka uwaga na temat kluczowej różnicy między polem _id a normalnym polem kolekcji. Pole _id służy do jednoznacznej identyfikacji dokumentów w kolekcji i jest automatycznie dodawane przez MongoDB kiedy kolekcja jest tworzona.

Dlaczego warto korzystać MongoDB?

Poniżej przedstawiamy kilka powodów, dla których warto zacząć korzystać z MongoDB:

  1. Zorientowany na dokumenty - Od MongoDB jest NoSQL typu baza danych, zamiast przechowywać dane w formacie typu relacyjnego, przechowuje dane w dokumentach. To sprawia MongoDB bardzo elastyczni i potrafiący dostosować się do rzeczywistych sytuacji i wymagań biznesowych.
  2. Zapytania ad hoc - MongoDB obsługuje wyszukiwanie według pola, zapytania zakresowe i wyszukiwania wyrażeń regularnych. Zapytania mogą być wykonywane w celu zwrócenia określonych pól w dokumentach.
  3. Indeksowanie – Można tworzyć indeksy w celu poprawy wydajności wyszukiwań w obrębie MongoDB. Dowolne pole w a MongoDB dokument może być indeksowany.
  4. Replikacja - MongoDB może zapewnić wysoką dostępność dzięki zestawom replik. Zestaw replik składa się z dwóch lub więcej MongoDB instancji. Każdy członek zestawu replik może w dowolnym momencie pełnić rolę repliki głównej lub pomocniczej. Replika główna to serwer główny, który komunikuje się z klientem i wykonuje wszystkie operacje odczytu/zapisu. Repliki pomocnicze przechowują kopię danych serwera głównego za pomocą wbudowanej replikacji. W przypadku awarii repliki głównej zestaw replik automatycznie przełącza się na serwer pomocniczy, stając się serwerem głównym.
  5. Równoważenie obciążenia - MongoDB wykorzystuje koncepcję fragmentowania w celu skalowania w poziomie poprzez dzielenie danych na wiele części MongoDB instancje. MongoDB może działać na wielu serwerach, równoważąc obciążenie i/lub duplikując dane, aby utrzymać działanie systemu w przypadku awarii sprzętu.

Modelowanie danych w MongoDB

Jak widzieliśmy w części wprowadzającej, dane w MongoDB ma elastyczny schemat. Inaczej niż w SQL bazy danych, gdzie przed wstawieniem danych należy zadeklarować schemat tabeli, MongoDBkolekcje nie wymuszają struktury dokumentu. Ten rodzaj elastyczności jest tym, co sprawia MongoDB tak potężny.

Podczas modelowania danych w MongoDBpamiętaj o następujących rzeczach:

  1. Jakie są potrzeby aplikacji – Przyjrzyj się potrzebom biznesowym aplikacji i sprawdź, jakie dane i jakiego rodzaju dane są potrzebne. Na tej podstawie upewnij się, że struktura dokumentu jest odpowiednia.
  2. Jakie są wzorce pobierania danych – Jeśli przewidujesz intensywne korzystanie z zapytań, rozważ użycie indeksów w modelu danych, aby poprawić wydajność zapytań.
  3. Czy w bazie danych często odbywają się operacje dodawania, aktualizowania i usuwania danych? Rozważ ponowne wykorzystanie indeksów lub w razie potrzeby uwzględnij partycjonowanie w projekcie modelowania danych, aby poprawić ogólną wydajność. MongoDB środowisko.

Różnica pomiędzy MongoDB & RDBMS

Poniżej znajdują się niektóre z kluczowych różnic między terminami MongoDB i RDBMS:

RDBMS MongoDB Różnica
Stół In RDBMS, tabela zawiera kolumny i wiersze, które służą do przechowywania danych, podczas gdy w MongoDB Ta sama struktura jest znana jako kolekcja. Kolekcja zawiera dokumenty, które z kolei zawierają pola, które z kolei są parami klucz-wartość.
Rząd dokument W RDBMS wiersz reprezentuje pojedynczy element danych o niejawnej strukturze w tabeli. W MongoDB, dane są przechowywane w dokumentach.
Kolumna Pole W RDBMS kolumna oznacza zbiór wartości danych. Te w MongoDB są znane jako pola.
Łączy Osadzone dokumenty W systemach RDBMS dane są czasami rozproszone w różnych tabelach i aby uzyskać pełny widok wszystkich danych, czasami wykonuje się łączenie tabel w celu ich pobrania. MongoDBDane są zazwyczaj przechowywane w pojedynczej kolekcji, ale rozdzielone za pomocą osadzonych dokumentów. W związku z tym nie ma koncepcji połączeń w MongoDB.

Oprócz różnic terminologicznych, poniżej przedstawiono kilka innych różnic:

  1. Relacyjne bazy danych znane są z egzekwowania integralności danych. Nie jest to wyraźny wymóg w MongoDB.
  2. RDBMS wymaga, aby dane były znormalizowany Po pierwsze, aby zapobiec powstawaniu osieroconych rekordów i duplikatów. Normalizacja danych wymaga następnie większej liczby tabel, co z kolei skutkuje większą liczbą połączeń tabel, a tym samym wymaga większej liczby kluczy i indeksów. Wraz ze wzrostem bazy danych, wydajność może stać się problemem. Ponownie, nie jest to jawne wymaganie w MongoDB. MongoDB jest elastyczny i nie wymaga wcześniejszej normalizacji danych.

FAQ

MongoDB Przechowuje duże ilości nieustrukturyzowanych i częściowo ustrukturyzowanych danych, co czyni go przydatnym dla procesów sztucznej inteligencji (AI) i uczenia maszynowego (ML). Jego elastyczne dokumenty zawierają dane treningowe, zestawy funkcji i metadane modeli, a Atlas oferuje wyszukiwanie wektorowe dla aplikacji AI.

Tak. MongoDB Wyszukiwarka Atlas Vector umożliwia przechowywanie i wyszukiwanie osadzenia wektorów w dokumentach. Obsługuje wyszukiwanie semantyczne, rekomendacje i generowanie danych wspomaganych wyszukiwaniem dla aplikacji AI bez oddzielnej bazy danych wektorów.

MongoDB Community Edition jest darmową wersją o otwartym kodzie źródłowym. MongoDB oferuje również Atlas, zarządzaną usługę w chmurze z bezpłatną warstwą, a także wersję Enterprise Edition z zaawansowanymi zabezpieczeniami i wsparciem technicznym za opłatą.

Wiele dużych organizacji korzysta MongoDB do elastycznego przechowywania dużych ilości danych, w tym w firmach z branży e-commerce, gier, IoT i zarządzania treścią. Jego skalowalność dzięki partycjonowaniu i replikacji sprawdza się w aplikacjach obsługujących miliony dokumentów.

Podsumuj ten post następująco: