Definicja #
MongoDB to open-source'owa dokumentowa baza danych (document store) stworzona przez 10gen (obecnie MongoDB, Inc.) i wydana w 2009 roku. Należy do kategorii baz NoSQL i jest najszerzej stosowaną bazą tego typu na świecie.
Dane w MongoDB przechowywane są w kolekcjach (collections) jako dokumenty w formacie BSON (Binary JSON). Każdy dokument może mieć inną strukturę, co eliminuje potrzebę definiowania schematu z góry.
Kluczowe cechy:
- Elastyczny schemat — dokumenty w kolekcji mogą mieć różne pola
- Bogate zapytania — filtrowanie, projekcja, aggregation pipeline, geo-indeksy
- Horizontal scaling — sharding do rozdziału danych między węzły
- Replica sets — replikacja dla wysokiej dostępności (HA)
- ACID w transakcjach — od wersji 4.0 obsługa transakcji wielodokumentowych
- Atlas — zarządzana usługa chmurowa MongoDB na AWS, Azure, GCP
Zastosowania #
MongoDB stosuje się do:
- Aplikacji webowych z dynamiczną strukturą danych — blogi, CMS, e-commerce, katalogi produktów
- Systemów zarządzania treścią (CMS) i personalizacji — różne atrybuty dla różnych typów produktów
- Aplikacji real-time — czaty, notyfikacje, systemy analityczne (z Change Streams)
- Przechowywania logów, zdarzeń i danych telemetrycznych (time-series collections)
- Mikroserwisów wymagających niezależnego schematu danych per serwis
Ścieżka nauki #
Przed nauką MongoDB warto znać podstawy baz danych (modele relacyjne, SQL) i co najmniej jeden język programowania.
Zacznij od:
- Podstawowe operacje CRUD:
insertOne,find,updateOne,deleteOne - Filtry zapytań: operatory
$eq,$gt,$in,$and,$or - Indeksy — tworzenie i analiza za pomocą
explain() - Sterowniki dla wybranego języka: Node.js (mongoose), Python (pymongo), Java (driver)
Następnie poznaj:
- Aggregation Pipeline —
$match,$group,$lookup,$project - Modelowanie danych — embedowanie vs referencje, wzorce projektowe
- Sharding i replica sets dla skalowalności i HA
- MongoDB Atlas — zarządzana chmura + Atlas Search (full-text)
FAQ #
- Kiedy używać MongoDB zamiast SQL?
- MongoDB sprawdza się, gdy dane mają zmienną strukturę, gdy potrzebujesz szybkiego prototypowania bez definiowania schematu, przy przechowywaniu zagnieżdżonych dokumentów JSON lub gdy wymagana jest pozioma skalowalność. SQL jest lepszy przy złożonych relacjach, transakcjach i raportowaniu.
- Czy MongoDB obsługuje transakcje?
- Tak, od wersji 4.0 MongoDB obsługuje wielodokumentowe transakcje ACID (na poziomie replica set) oraz sharded transactions od wersji 4.2. Transakcje jednodokumentowe były atomowe od zawsze.
- Ile zarabia programista znający MongoDB?
- MongoDB jest częstym wymaganiem dla backend developerów Node.js/Python. Senior developer z MongoDB zarabia w Polsce od 12 000 do 22 000 zł brutto.
- Czym jest Mongoose?
- Mongoose to biblioteka ODM (Object Document Mapper) dla Node.js, która dodaje schematy, walidację i wygodne API do pracy z MongoDB. Jest defacto standardem przy używaniu MongoDB w aplikacjach Node.js.