Zum Inhalt

Datenbanken

MongoDB

Die Installation der NoSQ-Datenbank "MongoDB" wurde bereits in Kapitel erläutert. Hier soll der Nutzung der MongoDB anhand von Beispielen beschrieben werden.

Informationsquellen zur MongoDB

Auf der Homepage der "MongoDB" finden zahlreiche Dokumentationen zuz den Treibern der unterschiedlichen Programmiersprachen, wie Node.js, C# und auch Python.

xxx

Hier soll schwerpunktmäßig der Umgang mit Python behandelt werden.

MongoDB-Compass

Mit der Installation der MongoDB kann optional das Tool "MongoDB Compass" mitinstalliert werden. Mit dieser grafischen Oberfläche kann interaktiv mit der Datenbank gearbeitet werden:

Startbildschirm vom mDB-Compass

Zuesrt ist eine Verbindung zum Datenbankserver anzulegen:

Konfiguration einer Verbindung (lokal oder entfernt)

Beispielsicht auf existierende DBs und Collections

Anlegen einer Time Series Collection

Die MongoDB unterscheided in "normale " Collections und "time series" Collections. Collections sind Listen von "documents", die als Json-Objekte strukturierte Daten beschreiben und speichern. Sollen in einer Collection Messdaten, die einen Zeitbezug aufweisen, gespeichert werden, dann unterstützt die MongoDB die besondere Art der "Time Series" (Zeitreihen). Sie zeichnen sich durch die Indexierung der Zeit (Zeitstempel/TimeStamp) aus. Dies macht den Zugriff auf die Daten innerhalb eines vorgegeben Zeitintervalls besonders effektiv. Zudem lässt sich die Gültigkeit der Daten begrenzen, was besonders bei gestreamten Daten, die schnell sehr großen Datenbestände umfassen können, sinnvoll ist.

Wird eine Time Series - Collection mit dem Compass angelegt, dann erscheint folgender Dialog:

Anlegen einer Time Series - Collection

Datenbankabfragen

Der grundlegende Abfragebefehl lautet find() und kann mit einer Reihe von Optionen ergänzt werden.

Find-Anfrage

Element Parameter Bemerkung
sort ts:-1 Rückwärts sortieren
project _id:0 Ein-/Ausblenden von Spalten
limit 1 Begrenzen der Anzahl der documents

Erzeugen einer TimeSeries-Collection mit Python

Die Erzeugung einer TS-Collection in Python erfordert eine kleine Erweiterung der Standard-Calls:

1
2
3
4
5
6
7
8
db.create_collection(
        "Mts",
        timeseries={  #(1)
            "timeField": "ts", # (2)
            "granularity": "seconds", # (3)
        },
        expireAfterSeconds = 60 # (4)
    )

  1. Aktivieren der TS-Eigenschaften
  2. key für den Timestamp
  3. Einheit der Blöcke
  4. Zeithorizont, der gespeichert bleibt

Das Ablaufen von Daten ist für bestimmte Arten von Informationen nützlich, darunter maschinell generierte Ereignisdaten, Protokolle und Sitzungsinformationen, die nur für einen begrenzten Zeitraum aufbewahrt werden müssen. Der Zeithorizont expireAfterSeconds beschreibt das Gedächniss bzw. das Hitoriengedächniss der Zeitreihe. Ältere Werte werden von dem MongoDB-Server gelöscht.

Alternative zu MongoDB-Compass: VS Code-Plugin

Eine interessante Alternative zu dem MongoDB-Compass-App kann direkt innerhalb von VS Codse genutzt werden: 'MongoDB for VS Code'

Der Vorteil ist die direke Integragtion in die Entwicklungsumgebung und die einfache Möglichkeit, sogenannte "Playgrounds" (Javascript-Dateien) verwalten und ausführen zu können.

MongoDB-Intergration in VS Code