Was ist MongoDB?
Relationale Datenbanken waren über Jahrzehnte der Standard für die Datenverwaltung. Doch die Vielfalt an Daten moderner Webanwendungen hat Datenbanken mit einem dokumentenorientierten Ansatz wie MongoDB zu einer echten Alternative zum klassischen Modell gemacht. Wir zeigen dir, wie dieses Konzept funktioniert und welche Vorteile es dir bietet.
Was zeichnet MongoDB aus?
MongoDB, dessen Name vom englischen Wort „humongous“ (riesig) stammt, ist ein dokumentenorientiertes Datenbanksystem. Im Gegensatz zu relationalen Datenbanken, die Daten in starren Tabellen strukturieren, speichert MongoDB Informationen in sogenannten unstrukturierten Sammelmappen (Collections).
Dabei verzichtet MongoDB auf SQL als Abfragesprache und zählt somit zu den NoSQL-Datenbanksystemen. Stattdessen kommt die auf JavaScript basierende MongoDB Query Language (MQL) zum Einsatz. Die Datensätze werden im BSON-Format gespeichert, einer binären Entsprechung von JSON. Da dadurch sämtliche JavaScript-Datentypen unterstützt werden, ist MongoDB die ideale Basis für viele JavaScript-basierte Plattformen.
Ein wesentliches Merkmal von MongoDB ist zudem die horizontale Skalierbarkeit. Das bedeutet, dass die Daten einer Datenbank über mehrere Server verteilt werden können, anstatt nur auf einem zentralen System zu liegen. Das erhöht die Verfügbarkeit und die Gesamtperformance erheblich. Meist ist dieser Weg kosteneffizienter, als einen einzelnen Server immer weiter mit teurer Hardware aufzurüsten (vertikale Skalierung).
Wie arbeitet MongoDB?
Anders als etwa MySQL verfolgt MongoDB einen dokumentenorientierten Ansatz bei der Datenspeicherung. Statt Tabellen, in denen jede Zeile die exakt gleiche Spaltenanzahl befüllen muss, landen die Informationen flexibel in BSON-Dokumenten. Jedes Dokument kann individuell viele Felder besitzen. Diese Dokumente ersetzen praktisch die Zeilen einer SQL-Tabelle, während die darin definierten Felder die Spalten repräsentieren.
Für die Arbeit mit MongoDB stehen verschiedene Werkzeuge zur Verfügung. Neben der klassischen MongoDB Shell gibt es mit MongoDB Compass auch eine grafische Oberfläche zur Verwaltung. In unseren Beispielen konzentrieren wir uns jedoch auf die Shell-Befehle.
Da MQL auf JavaScript aufbaut, stehen bereits viele Funktionen für komplexe Abfragen bereit. Die Schreib- und Lesebefehle folgen dabei einem einheitlichen Schema, wie das folgende Beispiel verdeutlicht. Weitere Befehle zur Datenbankverwaltung findest du im Detail in der MongoDB-Dokumentation.
db.studierende.find({ Name: "Fritz" })
db.studierende.updateOne({ Name: "Fritz" }, { $set: { Semester: 2 } })
db.studierende.deleteOne({ Name: "Peter" })
db.studierende.insertOne({
Name: "Else",
Alter: 18,
Semester: 1
})In diesem Beispiel siehst du aufeinanderfolgende Operationen. „db“ adressiert die Datenbank, während „studierende“ die Sammelmappe angibt, in der gearbeitet wird. Danach folgt die jeweilige Methode.
Mit find() suchst du nach Dokumenten. Ohne Parameter werden alle Einträge der Mappe ausgegeben; im Beispiel filtern wir nach dem Namen „Fritz“. Die Methode updateOne() überschreibt Werte. Sie benötigt zwei Argumente: das Auswahlkriterium und das zu ändernde Schlüssel-Wert-Paar. Hier wird bei allen Personen namens „Fritz“ das Semester auf 2 gesetzt.
Die Methode deleteOne() entfernt Dokumente basierend auf dem Auswahlkriterium – im Beispiel fliegen alle Einträge mit dem Namen „Peter“ raus. insertOne() fügt ein neues Dokument im JSON-Format hinzu. Wichtig: Jedes Dokument benötigt eine eindeutige 12-Byte Hexadezimalzahl als Objekt-ID. Gibst du diese nicht händisch an, erstellt world4you bzw. MongoDB diese automatisch für dich.
Vorteile von MongoDB
Das Konzept von MongoDB bietet dir viel Flexibilität. Ein großer Pluspunkt: Da Einträge nicht dieselben Attribute haben müssen, lassen sich unstrukturierte und semistrukturierte Daten problemlos speichern. Du kannst einzelne Dokumente jederzeit anpassen (z. B. Felder hinzufügen), ohne die gesamte Struktur der Sammelmappe ändern zu müssen. Durch das BSON-Format ist zudem eine nahtlose Integration in JavaScript-Umgebungen garantiert.
Darüber hinaus punktet MongoDB mit horizontaler Skalierbarkeit, ohne die ACID-Prinzipien (Atomicity, Consistency, Isolation, Durability) zu vernachlässigen. Bei verteilten Systemen ist Datenkonsistenz oft eine Herausforderung. Seit Version 4.2 (2019) beherrscht MongoDB jedoch Änderungen über mehrere Dokumente und Server hinweg, ohne dass die Konsistenz oder Verfügbarkeit leidet. So bleibt deine Anwendung immer am neuesten Stand.
Du suchst eine Datenbank, die mit deinen Projekten mitwächst? Mit world4you hast du das perfekte Fundament für deine Webanwendungen!
Wann ist MongoDB die richtige Wahl?
MongoDB ist ideal, wenn du Webprojekte mit massiven, unstrukturierten Datenmengen planst. Das Arbeiten ohne starres Schema ist perfekt für unterschiedliche Datentypen, die schnell verarbeitet und sicher gespeichert werden müssen.
Die nahezu grenzenlose horizontale Skalierung sorgt dafür, dass deine Datenbank auch bei Erfolg glatt läuft. Zur Absicherung der Verfügbarkeit lassen sich unkompliziert Sicherheitskopien erstellen und auf verschiedenen Servern bereitstellen. Auch beim Zusammenführen von Daten aus diversen Quellen spielt das System seine Stärken voll aus.
Empfehlenswert ist MongoDB besonders für Projekte mit diesen Schwerpunkten:
- Skalierbarkeit: Wenn deine Zugriffszahlen steigen, wächst die Datenbank einfach mit.
- Verfügbarkeit: Deine Anwendung bleibt auch bei Teilausfällen online und erreichbar.
- Flexibilität: Du kannst dein Projekt jederzeit dynamisch an neue Anforderungen anpassen.
Du bist unsicher, welches Modell passt? Oft ist auch ein Mix aus verschiedenen Datenbanktypen die ideale Lösung für dein Anforderungsprofil.