2 Einführung

2.1 Was ist MongoDB?

MongoDB ist eine Open-Source-Datenbank, die auf einer dokumentenbasierten Architektur basiert. Sie bietet robuste Skalierbarkeit, hohe Performance und Flexibilität, was sie ideal für moderne Internetanwendungen macht.

2.1.1 Dokumentenorientierte Speicherung

Anstelle von Tabellen, wie in relationalen Datenbanken, speichert MongoDB Daten als Dokumente im BSON-Format (Binary JSON). Dieses Format ermöglicht es, unterschiedliche Datenstrukturen in einer Kollektion abzulegen, ohne ein starres Schema vordefinieren zu müssen.

2.1.2 Skalierbarkeit

MongoDB ist für hohe Skalierbarkeit optimiert und unterstützt sowohl vertikale als auch horizontale Skalierung:

Automatische Replikation und Failover-Mechanismen sorgen zudem für hohe Verfügbarkeit und Ausfallsicherheit.

2.1.3 Flexibilität

Die schemalose Architektur von MongoDB erlaubt es, Datenmodelle ohne feste Strukturen zu definieren:

2.1.4 Native Replikation

MongoDB unterstützt eingebaute Replikation über Replikationssets, bestehend aus einem primären und mehreren sekundären Knoten. Änderungen werden effizient über ein Oplog (Operations Log) propagiert, was hohe Verfügbarkeit und Datenkonsistenz gewährleistet.

2.1.5 Sharding

Sharding ermöglicht die Verteilung großer Datenmengen auf mehrere Server. Ein definierter Shard Key teilt Daten in Chunks auf, die gleichmäßig auf die Shards verteilt werden.

Beispiel für Sharding-Konfiguration:

  1. Shard-Server starten: bash mongod --shardsvr --dbpath /data/shard1 --port 27018

  2. Konfigurationsserver starten: bash mongod --configsvr --dbpath /data/config --port 27019

  3. MongoS starten: bash mongos --configdb configServerAddress --port 27017

  4. Shard hinzufügen: javascript sh.addShard("shardServerAddress")

  5. Shard Key definieren: javascript sh.shardCollection("database.collection", { "shardKeyField" : 1 })

2.1.6 Intuitive Abfragesprache

MongoDB bietet eine JSON-ähnliche Abfragesprache, die leicht verständlich ist und eine Vielzahl an Operatoren für Filter, Sortierung und Aggregation bereitstellt:

MongoDB ermöglicht so die effiziente Ausführung von komplexen Datenoperationen mit minimalem Aufwand.