MongoDB to system zarządzania bazą danych typu open source (DBMS), który wykorzystuje model danych zorientowany na dokumenty. Jest uważana za bazę danych NoSQL, ponieważ nie używa modelu relacyjnego, a zatem nie używa SQL jako języka zapytań.
Model zorientowany na dokumenty umożliwia MongoDB przechowywanie częściowo ustrukturyzowanych danych, które nie wymagają stałego schematu. Można to osiągnąć dzięki wykorzystaniu dokumentów JSON.
MongoDB jest używany przez niektóre z największych firm na świecie, w tym Facebook, Google, Nokia, MTV Networks, Cisco, Forbes i wiele innych.
MongoDB to także wieloplatformowy system DBMS, obecnie obsługujący systemy Windows, Mac, Solaris i różne dystrybucje Linuksa w momencie pisania tego tekstu.
Baza danych MongoDB różni się od relacyjnej bazy danych tym, że MongoDB używa modelu zorientowanego na dokument do przechowywania danych. W modelu zorientowanym na dokumenty dane są przechowywane w dokumentach kolekcji. W modelu relacyjnym dane są przechowywane w wierszach tabeli.
Kolekcje
W MongoDB kolekcja to grupa dokumentów. Kolekcja zazwyczaj zawiera dokumenty o podobnej tematyce (np. Użytkownicy, Produkty, Wpisy itp.).
Kolekcje są zatem pod wieloma względami podobne do tabel z modelu relacyjnego.
Dokumenty
W MongoDB dokumenty są przechowywane jako JSON dokumenty. JSON (JavaScript Object Notation) to standard ułatwiający wymianę danych. Dokumenty JSON są podobne do dokumentów XML, ponieważ dane mogą być prezentowane w sposób hierarchiczny i mogą być odczytywane zarówno przez ludzi, jak i komputery.
Oto przykład dokumentu JSON. Tak wyglądają dokumenty w bazie danych MongoDB.
{ artistname : "Deep Purple", albums : [ { album : "Machine Head", year : 1972, genre : "Rock" }, { album : "Stormbringer", year : 1974, genre : "Rock" } ] }
_id
pole to unikalny identyfikator dokumentu. MongoDB pozwala na pobranie/odwołanie do każdego dokumentu za pomocą tego pola. Możesz to podać lub pozwolić MongoDB go wygenerować.
Używając JSON, wyniki zapytań mogą być łatwo analizowane, z niewielką lub żadną transformacją, bezpośrednio przez JavaScript i najpopularniejsze języki programowania. Dzieje się tak, ponieważ dokumenty JSON używają nazw/par i konwencji tablicowych, które są znane w większości popularnych języków programowania, takich jak C, C++, C#, Java, JavaScript, Perl, Python i wielu innych. Zmniejsza to ilość logiki biznesowej, którą należy wbudować w aplikacje korzystające z MongoDB.
Za kulisami MongoDB faktycznie przechowuje dokumenty JSON w formacie zakodowanym binarnie o nazwie BSON. BSON rozszerza JSON poprzez obsługę dodatkowych typów danych i wydajne kodowanie i dekodowanie w różnych językach.
Bez schematów
Każdy dokument JSON w kolekcji może zawierać własną strukturę. Dlatego nie ma ustalonego schematu, który ogranicza typ danych, które można wprowadzać do bazy danych MongoDB.
Jest to w przeciwieństwie do relacyjnej bazy danych, w której przed wprowadzeniem jakichkolwiek danych należy najpierw utworzyć schemat (tj. zdefiniować tabele, kolumny, typy danych itp.). Jeśli dane nie są zgodne ze schematem, nie trafiają do bazy danych.
W bazie danych MongoDB nie ma reguły określającej, które pola lub ile pól powinien mieć każdy dokument. Na przykład jeden dokument z kolekcji może zawierać imię i nazwisko, adres i numer telefonu, podczas gdy inny dokument może zawierać imię i nazwisko oraz adres e-mail.