Pierwszym krokiem w korzystaniu z MongoDB jest zrozumienie podstawowych koncepcji MongoDB oraz modelu danych (struktury danych), czyli w jaki sposób dane są przechowywane. W rzeczywistości MongoDB jest bardzo podobne do MySQL, dlatego każdy, kto zna MySQL, nie będzie miał żadnych trudności w nauce MongoDB.
Podstawowe koncepcje MongoDB
Baza danych
Baza danych MongoDB jest taka sama jak baza danych MySQL.
Kolekcja
Kolekcja w MongoDB odnosi się do zbioru danych dokumentów, podobnie jak pojęcie tabeli w MySQL.
Dokument
Dokument w MongoDB, podobnie jak wiersz danych w tabeli MySQL, jest strukturą danych w formacie JSON składającą się z wielu pól, co sprawia, że struktura dokumentu w MongoDB jest bardzo elastyczna.
Pole
Pole dokumentu w MongoDB jest podobne do pojęcia pola w tabeli MySQL, reprezentując konkretny typ danych do przechowywania, przy czym każde pole ma swój własny typ danych.
Indeks
Indeks w MongoDB jest podobny do indeksu MySQL i ma na celu poprawę efektywności zapytań.
Agregacja
Koncepcja agregacji w MongoDB jest podobna do analizy agregacji w MySQL, takiej jak Group by/Count/Sum, używanej do statystycznej analizy danych.
Porównanie koncepcji między MongoDB a MySQL
MySQL | MongoDB |
---|---|
Baza danych | Baza danych |
Tabela | Kolekcja |
Wiersz | Dokument |
Kolumna | Pole dokumentu |
Indeks | Indeks |
Agregacja (np. group by) | Agregacja |
W zasadzie koncepcje MongoDB można dopasować do MySQL, dlatego MongoDB jest najbardziej podobną nierelacyjną bazą danych do baz danych relacyjnych (NoSQL).
Dane dokumentów MongoDB
Dokument to po prostu struktura JSON składająca się z wielu pól, z każdym polem mającym swój własny typ danych. Podczas tworzenia z MongoDB, główny nacisk kładzie się głównie na projektowanie struktury dokumentu, podobnie jak rdzeń korzystania z MySQL dotyczy projektowania struktur tabel.
Przykład danych dokumentu MongoDB:
{
"_id": "5cf0029caff5056591b0ce7d",
"firstname": "Jane",
"lastname": "Wu",
"address": {
"street": "1 Circle Rd",
"city": "Los Angeles",
"state": "CA",
"zip": "90404"
},
"hobbies": ["surfing", "coding"]
}
Może to być dowolnie zagnieżdżona struktura JSON, coś czego struktury tabel w MySQL nie mogą osiągnąć. Pole _id
pełni rolę klucza głównego dokumentu, a jeśli nie określisz konkretnej wartości, MongoDB wygeneruje unikalną wartość losową.
Największą różnicą między strukturą danych MongoDB a tabelami MySQL jest to, że MongoDB nie wymaga predefiniowania struktury dokumentu. Dzięki MongoDB, możesz bezpośrednio wstawiać dane JSON do kolekcji bez konieczności z góry zdefiniowanego schematu. Za każdym razem, gdy zapisujesz dane JSON do kolekcji MongoDB, format może być inny, co pozwala na dodawanie lub usuwanie pól według uznania.
Uwaga: Chociaż struktura dokumentu MongoDB jest dość elastyczna i może dostosować się do różnych formatów danych w każdym wpisie, w praktycznych zastosowaniach struktura danych wewnątrz kolekcji zazwyczaj jest jednolita. W przeciwnym razie, jeśli format każdego wpisu będzie różny w kolekcji, utrzymanie takiej kolekcji byłoby koszmarem, ponieważ nie będziesz wiedzieć, jaki format danych zostanie pobrany za każdym razem.