MongoDB ist eine dokumentenorientierte NoSQL-Datenbank, die Daten als BSON-Dokumente (eine binäre Variante von JSON) speichert. Jedes Dokument kann eigene Felder haben — ein festes Schema ist nicht nötig. MongoDB wurde 2009 veröffentlicht und ist heute die bekannteste Dokumenten-Datenbank.

Das Dokumentenmodell

{
  "name": "Anna",
  "email": "Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.",
  "adresse": { "stadt": "Lübeck" },
  "interessen": ["Wandern", "IT"],
  "registriert": ISODate("2026-01-15")
}

Ein Dokument entspricht grob einer Zeile in einer relationalen Tabelle, eine Collection einer Tabelle und die Datenbank dem Schema. Im Gegensatz zu relationalen Systemen können Dokumente derselben Collection unterschiedliche Felder haben — neue Felder entstehen, ohne dass eine Migration nötig ist.

Wichtige Befehle (MongoDB Shell)

use shop                        # Datenbank wählen
db.produkte.insertOne({name: "Laptop", preis: 899})
db.produkte.find({preis: {$gt: 500}})
db.produkte.updateOne({name: "Laptop"}, {$set: {preis: 799}})
db.produkte.deleteOne({name: "Laptop"})

Indizes und Performance

Auch MongoDB nutzt Indizes, um Abfragen zu beschleunigen. Der Befehl db.collection.createIndex({feld: 1}) legt einen Index an. Für große Datenmengen unterstützt MongoDB das Sharding über mehrere Server und Replica Sets für Replikation und Ausfallsicherheit.

Wann MongoDB sinnvoll ist

  • Content-Management-Systeme mit heterogenen Inhalten
  • Echtzeit-Analysen und Event-Daten
  • JSON-basierte APIs, die direkt mit Dokumenten arbeiten
  • Anwendungen mit häufig wechselndem Datenmodell

Für stark relationale Daten mit vielen Beziehungen und Transaktionen sind klassische Systeme wie SQL-Datenbanken oft besser geeignet. MongoDB bietet zwar Transaktionen und JOIN-ähnliche $lookup-Operationen, bleibt aber am stärksten, wenn Dokumente weitgehend eigenständig sind. Weitere Alternativen: Redis für In-Memory-Zugriffe.