Zum Inhalt springen
Akinware
Gang zwischen Serverschränken in einem Rechenzentrum

MongoDB für flexible Datenstrukturen

MongoDB legt Daten nicht in Tabellen mit festen Spalten ab, sondern als einzelne Dokumente, die unterschiedlich aussehen dürfen. Das passt, wenn jeder Datensatz andere Felder hat und die Liste der Felder sich noch ändert.

Für freie FormateWenn Datensätze unterschiedliche Felder haben, modellieren wir sie als Dokumente statt als dreißig Spalten voller Leerwerte.

Wofür wir MongoDB einsetzen

  • Bildschirm mit einem Dashboard voller Diagramme und Kennzahlen

    Webanwendungen

    Werkzeuge, die im Browser laufen. Für Abläufe, die bisher in Excel-Tabellen und E-Mails hängen.
  • Hände halten ein Smartphone mit einer geöffneten App

    Apps

    Anwendungen fürs Handy. Für iOS und Android, oder als Progressive Web App ohne Umweg über den Store.
  • Leuchtendes Netzwerk aus verbundenen Knotenpunkten

    KI & Automatisierung

    Wiederkehrende Abläufe automatisieren und KI dort einsetzen, wo sie euch Arbeit abnimmt.
  • Schaubild mit einem Wolkensymbol, das mit Servern und Geräten verbunden ist

    Cloud

    Anwendungen und Daten in der Cloud betreiben, statt einen Server im Haus zu pflegen.
  • Laptop auf einem Schreibtisch, daneben eine Tasse und ein Headset

    Beratung & Support

    Wir sehen uns an, was ihr habt, und sagen ehrlich, was sich lohnt und was nicht.

Was ist MongoDB

MongoDB ist eine Dokumentendatenbank, 2009 von der Firma 10gen veröffentlicht, die sich später MongoDB Inc. nannte. Statt Tabellen mit festen Spalten speichert sie Dokumente in einem Format, das JSON sehr ähnlich sieht, und mehrere Dokumente in einer Sammlung müssen nicht dieselben Felder haben. Seit 2018 steht der Server unter der Server Side Public License, die für den eigenen Betrieb frei ist, den Weiterverkauf als Dienst aber einschränkt. Neben dem Selbstbetrieb gibt es Atlas, den bezahlten Cloud-Dienst des Herstellers.

Stark ist MongoDB dort, wo die Form der Daten offen ist: Produktkataloge mit wechselnden Merkmalen, Protokolle, Inhalte aus verschiedenen Quellen. Der Preis dafür ist, dass die Datenbank euch keine Struktur aufzwingt, ihr also selbst dafür sorgen müsst, dass nicht drei Schreibweisen desselben Feldes entstehen. Sobald Daten stark zusammenhängen, etwa Kunde, Auftrag, Rechnung und Zahlung, sind PostgreSQL oder MySQL die ruhigere Wahl. Wir setzen MongoDB deshalb gezielt für einen Teil einer Anwendung ein, nicht automatisch für alles.

Ein Prüfdienstleister nimmt Anlagen vor Ort ab und füllt dabei Protokolle aus, die je Anlagentyp andere Felder haben. In einer Tabelle hätte das entweder hundert Spalten mit Leerwerten ergeben oder eine neue Tabelle je Typ. Als Dokument liegt jedes Protokoll so vor, wie es ausgefüllt wurde, und ein neuer Anlagentyp braucht keine Änderung an der Datenbank. Die Stammdaten zu Kunden und Terminen blieben daneben in einer relationalen Datenbank.

Entwickelt von
MongoDB Inc., zuvor 10gen
Erschienen
2009
Art
Dokumentendatenbank, Format ähnlich JSON
Lizenz
Server Side Public License, Atlas als bezahlter Cloud-Dienst
Typische Einsätze
Kataloge mit wechselnden Merkmalen, Protokolle, Inhalte

Welche Datenbank passt zu euch

Vier Fragen, keine Eingabe von Daten. Am Ende steht eine Empfehlung, auch wenn sie auf eine andere Seite führt.

Serverschrank mit blau leuchtenden Geräten

Frage 1 von 4

Auf welchen Servern läuft eure IT?

  1. Auf welchen Servern läuft eure IT?
  2. Wie sehen eure Daten aus?
  3. Was passiert mit den Daten?
  4. Gibt es schon eine Datenbank?

Womit wir arbeiten

Wir bauen mit aktueller Technik, nicht mit einem Baukasten. Das ist der Unterschied, den man erst merkt, wenn etwas geändert werden soll, das der Baukasten nicht vorgesehen hat.

Fragen zu MongoDB

Wann lohnt sich MongoDB?

Wenn eure Datensätze unterschiedlich aussehen und sich die Felder noch ändern werden. Typisch sind Formulare und Protokolle je Typ, Kataloge mit Merkmalen, die je Warengruppe abweichen, oder Daten aus fremden Schnittstellen, die ihr erst einmal aufheben wollt. In einer Tabelle würdet ihr dafür Spalten anlegen, die meistens leer bleiben. Als Dokument liegt jeder Datensatz so vor, wie er entstanden ist.

Wann lohnt es sich nicht?

Wenn eure Daten in Wahrheit doch feste Form haben und stark zusammenhängen: Kunden, Aufträge, Rechnungen, Zahlungen. Dafür ist eine relationale Datenbank gebaut, und ihr bekommt Prüfregeln und Auswertungen geschenkt, die ihr in MongoDB selbst schreiben müsst. Auch als Ersatz für MySQL hinter WordPress oder einem Shop geht es nicht, diese Systeme setzen relationale Datenbanken voraus. MongoDB nur zu nehmen, weil es moderner klingt, rächt sich beim ersten Bericht.

Können wir Daten aus einer SQL-Datenbank übernehmen?

Ja, aber es ist keine reine Übertragung, sondern eine Umformung. Aus mehreren verknüpften Tabellen wird meist ein Dokument, und dabei entscheidet ihr, was zusammengehört und was getrennt bleibt. Diese Entscheidung ist die eigentliche Arbeit, denn sie legt fest, welche Abfragen später leicht und welche mühsam sind. Wir machen das anhand eurer wirklichen Abfragen, nicht anhand des alten Tabellenplans.

Kann man in MongoDB auswerten?

Ja, über die Aggregation Pipeline, die Daten in mehreren Schritten filtert, gruppiert und zusammenfasst. Für Auswertungen innerhalb einer Sammlung reicht das gut. Sobald ihr über viele Sammlungen hinweg verknüpfen und rechnen wollt, wird es umständlicher als dieselbe Aufgabe in PostgreSQL. Wenn Berichte ein Hauptzweck eurer Anwendung sind, sagen wir das vor der Entscheidung und nicht danach.

Selbst betreiben oder Atlas nutzen?

Atlas nimmt euch Einrichtung, Sicherungen und Aktualisierungen ab und kostet monatlich. Selbst betrieben spart ihr das Geld und übernehmt die Arbeit, inklusive Sicherungen und Überwachung. Für kleine Projekte ist Atlas meist günstiger als die Zeit, die der eigene Betrieb kostet, für größere lohnt der Vergleich. Wichtig ist bei Atlas die Wahl der Region, wenn eure Daten in der EU bleiben sollen.

Kontakt und kostenlose Beratung

Hände tippen auf einer Laptop-Tastatur, daneben eine Tasse Kaffee
Telefon0208 78015410E-Mailinfo@akinware.com
Adresse
Huyssenstraße 6G, 46119 Oberhausen
Worum geht es