← Anleitungen
DatenbankenEinsteiger1 Min

MongoDB

Die bekannteste NoSQL-Dokumentendatenbank: speichert Daten als flexible JSON-artige Dokumente statt in starren Tabellen.

MongoDB ist die bekannteste NoSQL-Datenbank. Statt Daten in Tabellen mit festen Spalten zu pressen, speichert sie flexible, JSON-artige Dokumente — ideal, wenn sich Datenstrukturen häufig ändern.

Was ist MongoDB?

Eine dokumentenorientierte Datenbank: Daten liegen als Dokumente (intern BSON, vom Aufbau wie JSON) in „Collections" statt in Tabellen. Jedes Dokument kann eine eigene Struktur haben — das Schema ist flexibel.

Wann MongoDB?

Sich entwickelnde Daten. Wenn Felder häufig dazukommen oder sich ändern, ohne starres Schema.

Verschachtelte Daten. Ein Dokument kann zusammengehörige Daten direkt eingebettet enthalten.

Schnelle Iteration & Skalierung. Beliebt in modernen Web-/App-Backends, gut horizontal skalierbar.

Relational oder Dokument?

Relationale Datenbanken (SQL) glänzen bei klar strukturierten Daten mit vielen Beziehungen und Joins. Dokumentendatenbanken wie MongoDB glänzen bei flexiblen, verschachtelten oder uneinheitlichen Daten. Viele Projekte nutzen bewusst beides — je nach Aufgabe.

Kurz: feste Struktur + viele Beziehungen → SQL (Postgres/MariaDB). Flexible, verschachtelte Dokumente → MongoDB.

Installation mit Docker

MongoDB läuft als Server-Container. Das Datenverzeichnis /data/db kommt in ein benanntes Volume, damit die Dokumente erhalten bleiben.

1docker run -d --name mongodb \
2 -e MONGO_INITDB_ROOT_USERNAME=root \
3 -e MONGO_INITDB_ROOT_PASSWORD=deinSicheresPasswort \
4 -p 27017:27017 \
5 -v mongo_data:/data/db \
6 mongo:7

Oder als wiederverwendbare docker-compose.yml:

1services:
2 mongodb:
3 image: mongo:7
4 restart: unless-stopped
5 environment:
6 MONGO_INITDB_ROOT_USERNAME: root
7 MONGO_INITDB_ROOT_PASSWORD: deinSicheresPasswort
8 ports:
9 - "27017:27017"
10 volumes:
11 - mongo_data:/data/db
12
13volumes:
14 mongo_data:

Setze ein starkes Root-Passwort und gib den Port 27017 nicht ungeschützt ins Internet frei.

Verbinden / testen:

1docker exec -it mongodb mongosh -u root -p

Fazit

MongoDB ist der einfachste Einstieg in die NoSQL-Welt: keine starren Tabellen, Daten wie JSON. Für stark relationale Daten bleibt SQL die bessere Wahl — die Kunst liegt in der passenden Wahl je Anwendungsfall.