MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Co to jest MongoDB i jak to działa?

MongoDB jest najpopularniejszą i najczęściej używaną bazą danych NoSQL. Jest to baza danych zorientowana na dokumenty typu open source. NoSQL jest używany w odniesieniu do „nierelacyjnego”. Oznacza to, że baza danych MongoDB nie jest oparta na relacjach tabelarycznych, takich jak RDBMS, ponieważ zapewnia odrębny mechanizm przechowywania i wyszukiwania danych.

Format przechowywania używany przez MongoDB jest określany jako BSON. Baza danych jest utrzymywana przez MongoDB Inc. i podlega licencji publicznej po stronie serwera (SSPL).

Poniżej znajduje się prosta struktura dokumentu MongoDB:

{
  title: 'FossLinux',
  by: 'Abraham',
  url: 'https://www.fosslinux.com',
  type: 'NoSQL'
}

Jak to działa?

MongoDB działa na dwóch warstwach, a mianowicie:

  • Warstwa danych
  • Warstwa aplikacji

Warstwa aplikacji jest powszechnie określana jako warstwa końcowej abstrakcji. Zawiera dwie części:zaplecze, część serwerową i interfejs sekcji interfejsu użytkownika. Sekcja frontendu to widoczne miejsce, w którym programista, za pomocą MongoDB, wchodzi w interakcję z komórką lub siecią. Sekcja zaplecza obejmuje serwer używany głównie do prowadzenia logiki po stronie serwera. Poza tym sekcja serwera zawiera sterowniki i powłokę mongo, które wspomagają interakcję z serwerem MongoDB za pomocą zapytań.

Zapytania są wysyłane do serwera znajdującego się w warstwie danych. Serwer MongoDB odbiera, a następnie przekazuje zapytania do silnika pamięci masowej, gdzie przeprowadzane są operacje odczytu i zapisu na odpowiednich plikach danych. Głównym celem silnika pamięci masowej jest zarządzanie danymi.

Uwaga: Serwer MongoDB nie wykonuje operacji zapisu i odczytu.

Poniższy obraz ilustruje, jak działa MongoDB:

Główne cechy MongoDB

Jego główne cechy to:

1. Indeksowanie

Indeksy mają na celu poprawę wydajności i szybkości wyszukiwania bazy danych. Pola w dokumencie tej bazy danych mogą być indeksowane za pomocą głównego i wtórnego indeksu/indeksów. Bez indeksowania każdy dokument w bazie danych musi zostać zeskanowany w celu wybrania tych, które pasują do zapytania, co czasami jest nieefektywne. Dlatego indeksowanie musi być obecne w celu wydajnego wyszukiwania dokumentów, a MongoDB używa go do zwięzłego przetwarzania dużych fragmentów danych.

MongoDB pozwala swoim użytkownikom na indeksowanie dowolnego pola, które zostało zindeksowane zarówno indeksem dodatkowym, jak i głównym. Dzięki temu wyszukiwanie zapytań jest znacznie szybsze, co zwiększa ogólną wydajność.

2. Równoważenie obciążenia

MongoDB duplikuje dane, aby utrzymać działanie systemu nawet w przypadku awarii sprzętu. Ponadto proces ten umożliwia MongoDB działanie na wielu serwerach, a tym samym równoważenie obciążenia.

3. Zapytania ad hoc

MongoDB regularnie obsługuje przeszukiwanie pól, zapytań o zakres i wyrażeń. Zapytania te zwracają określone pola dokumentów, a także zawierają funkcje JavaScript zdefiniowane przez użytkownika. Zapytania można również skonfigurować tak, aby zwracały losową próbkę wyników o określonym rozmiarze.

4. Replikacja

Zestawy replik udostępniane przez MongoDB składają się z co najmniej dwóch kopii danych. Zestawy te mogą w dowolnym momencie działać jako replika główna lub wtórna. Podstawowe zestawy replik wykonują odczyt i zapis, podczas gdy zestawy dodatkowe przechowują kopię danych repliki podstawowej za pomocą wbudowanej replikacji. Jeśli replika podstawowa ulegnie awarii, zestaw replik automatycznie przeprowadzi proces wyboru, aby określić, który z nich powinien stać się podstawowym. Repliki wtórne mogą opcjonalnie obsługiwać operacje odczytu, ale dane są ostatecznie domyślnie spójne.

5. Przechowywanie plików

Ta baza danych udostępnia programistom funkcje służące do manipulowania plikami i zawartością. Mongo DB może być używany jako system plików znany jako system plików Grid (GridFS). Ta funkcja dzieli plik na części i przechowuje każdą część jako oddzielny dokument.

6. Agregacja

Aby zapewnić wydajną użyteczność, MongoDB zapewnia strukturę agregacji. Ta funkcja pozwala programistom na grupowanie danych procesu i uzyskanie pojedynczego wyniku nawet po wykonaniu różnych operacji na danych grupy. Istnieją trzy sposoby, w jakie MongoDB udostępnia strukturę agregacji:

  • Funkcja redukcji mapy
  • Potok agregacji
  • Agregacja jednego celu.

Sprawdź poniższy obraz, aby zobaczyć, jak działa agregacja w MongoDB:

7. Baza danych bez schematów

Funkcja bez schematu zapewnia MongoDB znacznie większą elastyczność. Jedna kolekcja może zawierać różne dokumenty w MongoDB. Fakt, że nie ma schematu, pozwala na przechowywanie oddzielnych dokumentów z inną zawartością, polami i rozmiarami w tej samej kolekcji.

8. GridFS

Jest to funkcja używana do przechowywania i pobierania plików w MongoDB. Dzieli dokument na kilka części zwanych fragmentami, a następnie przechowuje je w różnych dokumentach. Wszystkie porcje z wyjątkiem ostatniej porcji mają domyślny rozmiar pamięci wynoszący około 255 KB. GridFS jest bardzo przydatny w przypadku plików większych niż 16 MB.

Uwaga: Gdy GridFS jest pytany o plik, składa wszystkie oddzielne fragmenty wymagane do utworzenia oryginalnego pliku. Poniżej znajduje się uproszczona metodologia pracy GridFS:

Komponenty MongoDB

Podstawowe komponenty MongoDB i ich użycie obejmują:

  1. Kolekcje – Jest to zestaw dokumentów MongoDB. Ich odpowiednikami w RDBMS są tabele. Ważne jest, aby zrozumieć, że kolekcje nie wymuszają żadnej struktury. Kolekcja zawsze istnieje w jednym DB.
  2. Dokument – Jest to zbiór danych przechowywanych w formacie BSON. Jego odpowiednikiem w RDBMS jest Row. Rekordy w MongoDB są znane jako dokumenty. Dokumenty w MongoDB zawierają nazwy pól i odpowiadające im wartości.
  3. Pole – Jest to pojedynczy element w dokumencie MongoDB, który zawiera wartości jako pola i pary wartości. W relacyjnych bazach danych pola są analogiczne do kolumn. Pole można w prosty sposób określić jako parę nazwa-wartość w dokumencie.
  4. _id – Każdy dokument MongoDB wymaga tego pola. Pole _id można przyrównać do klucza podstawowego w relacyjnych bazach danych. Reprezentuje unikalną instancję lub wartość w dokumencie MongoDB. Jeśli celowo utworzysz dokument w MongoDB bez pola _id, zostanie on automatycznie wygenerowany.
  5. Kursor – Jest to wskaźnik, który wskazuje ustawiony wynik zapytania. Za pomocą kursora klienci mogą pobierać wyniki.
  6. JSON – To jest notacja JavaScript. Jest to zwykły tekst, czytelny dla człowieka format używany do wyrażania uporządkowanych danych. Tysiące języków programowania obsługuje JSON.
  7. Baza danych – Podobnie jak w RDBMS, gdzie baza danych jest kontenerem tabel, w MongoDB baza danych jest kontenerem kolekcji. Każda baza danych zawiera własne zestawy plików w systemie plików. Dlatego serwery MongoDB mogą przechowywać więcej niż jedną bazę danych.

Wersje MongoDB

MongoDB został wydany w różnych wydaniach, które są;

  • Serwer społeczności MongoDB –  Jest to wersja MongoDB o otwartym kodzie źródłowym, która jest bezpłatnie dostępna dla użytkowników systemów Linux, Windows i macOS.
  • Serwer MongoDB Enterprise –  To jest komercyjna wersja MongoDB i można ją znaleźć jako część pakietu subskrypcji MongoDB Enterprise Advanced.
  • Atlas MongoDB – Powszechnie określany jako MongoDB Cloud. MongoDB Atlas to pakiet MongoDB na żądanie, który w całości działa i jest zarządzany na platformach Microsoft Azure, Google Cloud i AWS. Jest to wersja MongoDB Enterprise hostowana w chmurze. Edycja Atlas zawiera wszystkie funkcje serwera MongoDB Enterprise i wiele więcej. Oznacza to zatem, że MongoDB Atlas jest znacznie bardziej zaawansowany niż wszystkie inne edycje MongoDB.

Dlaczego warto używać MongoDB?

  1. Relacyjna baza danych zawiera dane strukturalne, ale co z danymi nieustrukturyzowanymi? Użytkownik może nadal dodawać różne formy losowych danych do MongoDB bez deklarowania ich typów.
  2. Użytkownik może ładować ogromne ilości danych za pomocą wbudowanej metody shardingu, która oddziela dane i wygodnie rozdziela je na wiele serwerów, dzięki dostępności i elastyczności MongoDB w środowisku chmurowym.
  3. Dynamiczny schemat MongoDB pozwala użytkownikom eksperymentować i szybko uczyć się nowych rzeczy. Wszystko można szybko i niedrogo włączyć do MongoDB.
  4. Ułatwia zbieranie danych opartych na lokalizacji bez konieczności stosowania wyrafinowanych procedur.
  5. Miliony połączonych urządzeń regularnie generują dane w Internecie, co utrudnia ich wyodrębnianie i przetwarzanie, ale MongoDB może to zrobić w ramach jednej bazy danych.
  6. MongoDB może przechowywać szeroki zakres danych z kilku źródeł, aby zasilać witrynę opartą na CMS. Te informacje obejmują tweety, komentarze, wiadomości multimedialne i inne rodzaje informacji.
  7. To doskonały towarzysz do tworzenia aplikacji mobilnych.
  8. Może dostarczać użytkownikom analizy klienta w czasie rzeczywistym, zapewniając bardzo potrzebne spersonalizowane wrażenia.
  9. Jest to tania baza danych. Jeśli prowadzisz mikro lub małą firmę, MongoDB jest lepszą opcją przechowywania, ponieważ jest łatwa w administrowaniu i konfiguracji.
  10. Potężna wyszukiwarka w MongoDB poinformuje użytkownika, skąd pochodzą dane.

Wady i zalety MongoDB

Zalety

  1. MongoDB jest znacznie lepszy od relacyjnych baz danych, jeśli ktoś ma znaczną ilość danych i chce je rozłożyć na wiele serwerów w celu równoważenia obciążenia.
  2. Zapytania wyszukiwania w MongoDB są szybsze, ponieważ muszą być interpretowane na pojedynczym serwerze w celu uzyskania dostępu.
  3. Oferuje wszechstronność, co oznacza, że ​​powinni wykorzystywać MongoDB do przechowywania nieustrukturyzowanych danych, ponieważ jest to znacznie łatwiejszy sposób.

Wady

  1. W MongoDB nie ma możliwości łączenia tabel; w związku z tym trzeba będzie robić to ręcznie za każdym razem, gdy będzie potrzebował tej funkcji, co skutkuje nieestetycznym i czasochłonnym kodowaniem.
  2. Zużywa dużo pamięci, ponieważ musi przechowywać klucz dla każdego dokumentu, ponieważ istnieje możliwość wystąpienia konfliktu danych.
  3. Kiedy zaczynasz korzystać z jednej funkcji, blokuje ona całą bazę danych, powodując problem ze współbieżnością.
  4. Nie robi tego automatycznie; dlatego użytkownik musi ręcznie upewnić się, że operacja jest transakcją.

10 najczęściej zadawanych pytań dotyczących MongoDB

Ta sekcja zawiera odpowiedzi na niektóre z najczęściej zadawanych pytań MongoDB. Możesz to sprawdzić, ponieważ odpowiedzi na większość typowych pytań zostały już udzielone i możesz mieć szczęście, że znajdziesz tutaj rozwiązanie swojego problemu.

1. Jak mogę się nauczyć MongoDB?

Najprostszym i najczęstszym sposobem nauki MongoDB są kursy szkoleniowe online oferowane przez MongoDB dla programistów. Kursy są opracowywane i prowadzone przez doświadczonych inżynierów MongoDB, którzy są dobrze zaznajomieni z MongoDB. Kursy są bezpłatne i obejmują każdy aspekt, który musisz znać, aby zostać guru MongoDB. Większość ekspertów nauczyła się korzystać z tej metody.

Dlatego nie będziesz doskonałym wyjątkiem, jeśli pójdziesz w ich ślady. Kursy online zapewniają rzeczywiste aplikacje, które pomagają użytkownikom lepiej zrozumieć ten temat. Szkolenie online odbywa się we własnym tempie, co oznacza, że ​​określasz, ile czasu zajmie ich nauka. Poza tym kursy są dodatkowymi ćwiczeniami, które pomagają nowicjuszom uczyć się i ćwiczyć więcej na MongoDB. Odwiedź Uniwersytet MongoDB, aby uzyskać mnóstwo bezpłatnych kursów i nauczyć się MongoDB.

2. Czy korzystanie z serwera MongoDB jest bezpłatne?

Tak. Serwer MongoDB jest darmowy w zależności od wybranego pakietu. Na przykład serwer społeczności jest dostępny dla wszystkich użytkowników. Jeśli jednak szukasz większej liczby funkcji, możesz skorzystać z płatnej wersji, takiej jak MongoDB Enterprise lub Atlas Edition.

3. Wyjaśnij różnice między MongoDB a relacyjnymi bazami danych?

Większość relacyjnych baz danych, takich jak MySQL, Oracle, SQL Server i Postgres, opiera się na architekturach pierwotnie zaprojektowanych dawno temu (ponad 40 lat). Wymagania aplikacji w tym czasie różniły się od współczesnych wymagań aplikacji.

MongoDB opiera się na architekturze systemów rozproszonych, w przeciwieństwie do relacyjnych baz danych, umożliwiając użytkownikom szybkie skalowanie baz danych w różnych instancjach. aby uzyskać dogłębną analizę, sprawdź różnice między MongoDB a MySQL (relacyjną bazą danych). Głównym celem projektowania MongoDB było zwiększenie produktywności. Elastyczność schematu jest tym, czego szukała większość użytkowników i jest to jedna z fantastycznych funkcji oferowanych przez MongoDB.

4. Jak uzyskać komercyjną licencję MongoDB?

Aby uzyskać komercyjną licencję MongoDB, możesz ją kupić od MongoDB Enterprise Advanced.

5. Wyjaśnij, jak dane są przechowywane w MongoDB?

W MongoDB dane są przechowywane w dokumentach BSON, które używają struktur danych formatu JSON. Dokumenty zawierają więcej niż jedno pole, a każde pole ma określoną wartość typu danych, która obejmuje dane binarne, tablice i dokumenty podrzędne. Dokumenty o podobnej strukturze są przechowywane i organizowane jako kolekcje.

6. Gdzie można uruchomić MongoDB?

MongoDB możesz pobrać, zainstalować i uruchomić z dowolnego miejsca. Tak długo, jak osiągniesz swobodę blokowania platformy, możesz uruchamiać MongoDB z dowolnego miejsca. Na przykład wersja MongoDB Atlas zapewnia użytkownikom w pełni dostosowaną i zarządzaną usługę w AWS, Google Cloud i Azure, która działa na zasadzie pay-as-you-go. MongoDB Ops Manager to jeden z najlepszych alternatywnych sposobów uruchamiania MongoDB w Twojej infrastrukturze. Dzięki temu zespoły mogą łatwo i szybko monitorować, tworzyć kopie zapasowe, skalować i wdrażać MongoDB.

7. Wyjaśnij, dlaczego MongoDB jest przydatne?

MongoDB opiera się na trzech głównych zasadach projektowania, które umożliwiają użytkownikom wspólne tworzenie szybszych i wysokiej jakości aplikacji. Trzy podstawowe zasady projektowania to:

Projektowanie systemów rozproszonych pozwala użytkownikom inteligentnie przydzielać dane tam, gdzie chcą.
Ujednolicone środowisko – daje użytkownikom swobodę działania w dowolnym miejscu. Ta podstawowa zasada projektowania pozwala wyeliminować uzależnienie od dostawcy, jednocześnie umożliwiając użytkownikom zabezpieczenie ich aplikacji w przyszłości.
Model danych dokumentu – Ta funkcja zapewnia użytkownikom najlepszy i prosty sposób pracy z danymi.

8. Kiedy należy używać MongoDB?

MongoDB to wszechstronna baza danych NoSQL, której można używać w aplikacjach analitycznych i szeregu innych aplikacji OLTP. Szeroka gama aplikacji może być obsługiwana za pomocą Atlasu MongoDB i serwera MongoDB.

9. Wyjaśnij, jak MongoDB zabezpiecza dane klientów?

MongoDB zawiera rozbudowane funkcje, które zabezpieczają, wykrywają, kontrolują i chronią dane klienta. Poniżej znajdują się niektóre z tych kluczowych funkcji, które pomagają zabezpieczyć dane klienta:

Autoryzacja –
RBAC (Kontrola dostępu oparta na rolach) umożliwia użytkownikom konfigurowanie szczegółowych uprawnień, które zapewniają użytkownikom lub aplikacjom uprawnienia niezbędne do wykonywania ich zadań.

Audyt ma kluczowe znaczenie dla zgodności z przepisami, ponieważ umożliwia administratorom bezpieczeństwa korzystanie z rodzimego dziennika audytu MongoDB w celu rejestrowania zmian i działań w bazie danych.

Uwierzytelnianie – MongoDB oferuje realny, solidny mechanizm typu challenge-response, który upraszcza kontrolę dostępu do bazy danych w oparciu o SCRAM-256 wraz z wprowadzeniem zintegrowanej infrastruktury bezpieczeństwa przedsiębiorstwa. Ponadto niektóre z funkcji, które otrzymujesz, to Windows Active Directory, certyfikaty x.509, LDAP i Kerberos.

Szyfrowanie wszędzie – Podczas ruchu dane MongoDB mogą być szyfrowane w sieciach, a w spoczynku dane mogą być szyfrowane na dyskach lub w kopiach zapasowych. Wreszcie dane MongoDB można zaszyfrować w bazie danych podczas używania.

Wniosek

Ten artykuł kompleksowo omówił wszystkie aspekty, które należy wiedzieć o MongoDB. Z biegiem czasu użytkownicy zaczęli szukać wysokiej produktywności, którą MongoDB oferuje swoim użytkownikom. W przeciwieństwie do relacyjnych baz danych, jak już wspomniano w artykule, MongoDB daje użytkownikom możliwość szybkiego skalowania baz danych.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Grupa MongoDB i suma z identyfikatorem jako kluczem

  2. Kluczowe rzeczy do monitorowania w MongoDB

  3. szukaj według ObjectId w mongodb z pymongo

  4. Mapowanie dokumentu z częściowo zdefiniowanym schematem

  5. Użytkownik root MongoDB