MongoDB-Tutorial: Installation und Einstieg

Für gewöhnlich unterscheiden sich die verschiedenen Datenbankmodelle – SQL oder NoSQL – in Sachen Konfiguration und Bedienung deutlich. Dass Sie bei der Nutzung einer NoSQL-Lösung allerdings nicht immer das gesamte, über die Jahre gesammelte Know-how über relationale Datenbanksysteme über den Haufen werfen müssen, stellt die Open-Source-Software MongoDB unter Beweis: Zwar grenzt sich die dokumentenorientierte Datenbank mit der flexiblen Speicherung der Daten klar von Klassikern wie MySQL ab, dennoch weisen die Modelle gewisse Ähnlichkeiten auf, die Sie in unserer MongoDB Vorstellung nachlesen können. Auch wenn Abfragesprache und Befehlssyntax von MongoDB eine Umgewöhnung bedeuten, bereitet der Einstieg bzw. Umstieg erprobten SQL-Experten in der Regel keine großen Schwierigkeiten.

Im folgenden MongoDB-Tutorial setzen wir uns genauer mit der Installation, Konfiguration und Verwaltung des modernen Datenbanksystems am Beispiel von Ubuntu auseinander.

Schritt 1: Installation

Sie finden die frei verfügbare Open-Source-Edition „Community Server“ ebenso wie die kommerziellen Enterprise-Lösungen im Download-Center auf der offiziellen MongoDB-Website. Im ersten Schritt sollten Sie also die Installations- bzw. Binärdateien für Ihr System heraussuchen und herunterladen. Da MongoDB plattformübergreifend ist, gibt es hier eine Auswahl aus verschiedenen Windows- und Linux-Systemen sowie OS X und Solaris.

Auf einem Windows-Betriebssystem wird die Datenbank einfach mithilfe der heruntergeladenen Installationsdatei in das gewünschte Verzeichnis installiert. Windows-10-Nutzer können dafür die Version für Windows Server 2008 (64-bit) nehmen. Für Linux und Co. laden Sie wie üblich eine Archivdatei herunter, die Sie zunächst entpacken und im Anschluss mit dem Paketmanager installieren. Je nach Distribution müssen Sie unter Umständen zunächst den MongoDB Public GPG Key importieren. Für Ubuntu wird dieser Authentifizierungsschlüssel benötigt, weshalb Sie diesen mit folgendem Befehl implementieren müssen:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

Anschließend updaten Sie die Liste des Paketmanagers:

sudo apt-get update

… und installieren MongoDB inklusive nützlicher Management-Tools:

sudo apt-get install -y mongodb-org

Schritt 2: Start des MongoDB-Servers

Das Standardinstallationsverzeichnis /var/lib/mongodb und das Log-Verzeichnis /var/log/mongodb können Sie optional in der Konfigurationsdatei /etc/mongod.conf ändern. Mithilfe des folgenden Befehls starten Sie die Datenbank:

sudo service mongod start

Verwenden Sie statt des Parameters start den Parameter stop, beenden Sie die Ausführung der Datenbank, restart sorgt für einen Neustart. Um zu überprüfen, ob MongoDB erfolgreich gestartet wurde, genügt ein Blick in das Logfile /log/mongodb/mongod.log:

[initandlisten] waiting for connections on port <port>

Die Zeile verrät Ihnen, dass der Datenbankserver in Betrieb ist und auf eingehende Verbindungen auf dem in der Konfigurationsdatei definierten Port (<port>) wartet. Standardmäßig wir hier Port 27017 verwendet.

Schritt 3: Start des Clients

Wenn der MongoDB-Server läuft, können Sie den jeweiligen Client starten. Wir nutzen an dieser Stelle den standardmäßig enthaltenen Kommandozeilen-Client Mongo Shell, der auf JavaScript basiert und für die Administration der Datenbank sowie den Zugriff und die Aktualisierung des Datenbestands verwendet werden kann. Auf demselben System, auf dem die MongoDB-Anwendung ausgeführt wird, starten Sie den Client mit dem einfachen Terminal-Befehl:

mongo

Automatisch verbindet sich die Mongo Shell nun mit der laufenden MongoDB-Instanz auf dem lokalen Host und dem Port 27017. Natürlich können Sie diese Standard-Verbindungseinstellungen mit den entsprechenden Parametern ebenfalls anpassen. Diese und einige weitere wichtige Optionen sind in der folgenden Tabelle zusammengefasst:

Parameter Beschreibung
--shell Aktiviert das Shell-Interface, wodurch Sie nach Ausführung eines Befehls die entsprechende Anzeige präsentiert bekommen.
--nodb Verhindert, dass sich die Mongo Shell mit einer Datenbank verbindet.
--port <port> Definiert den Port für die Verbindung.
--host <hostname> Definiert den Host für die Verbindung.
--help oder -h Zeigt Ihnen die Optionen an.
--username <username> oder -u <username> Sind Zugangsberechtigungen definiert, melden Sie sich auf diese Weise mit dem jeweiligen Nutzernamen (<username>) an.
--password <password> oder -p <password> Sind Zugangsberechtigungen definiert, melden Sie sich auf diese Weise mit dem jeweiligen Passwort (<password>) an.

Die hier verwendeten spitzen Klammern sind nicht Bestandteil des jeweiligen Parameters und erscheinen daher nicht im endgültigen Befehl. Für die Definition des Ports bedeutet das beispielsweise, dass Ihre Eingabe folgendermaßen aussieht, wenn Sie anstatt des Standard-Ports 27017 lieber den Port 40000 wählen wollen:

mongo --port 40000
Tipp: Managed MongoDB von IONOS

Mit Managed MongoDB von IONOS können Sie sich auf das Wesentliche konzentrieren. Ob Installation, Betrieb oder Wartungsarbeiten, IONOS sorgt für einen zuverlässigen Betrieb Ihrer hochperformanten Datenbanken.

Schritt 4: Eine Datenbank erstellen

Sobald MongoDB und der Client laufen, können Sie sich der Datenverwaltung und -bearbeitung widmen. Doch zuvor sollten Sie noch eine Datenbank erstellen – andernfalls werden die Sammlungen (Collections) und Dokumente in der automatisch erzeugten test-Datenbank gespeichert. Sie erzeugen eine Datenbank mit dem use-Kommando. Wollen Sie z. B. eine Datenbank mit dem Namen meinedatenbank erstellen, sieht der dazu passende Befehl so aus:

use meinedatenbank

Mit dem Befehl use wählen Sie außerdem eine bereits existierende MongoDB-Datenbank aus, die Sie für die Datenverarbeitung nutzen möchten; mithilfe des kurzen Kommandos db überprüfen Sie, welche Datenbank derzeit ausgewählt ist.

Schritt 5: Eine Collection erstellen

Im nächsten Schritt kreieren Sie eine erste Collection, also eine Sammelmappe für die verschiedenen BSON-Dokumente, in denen später die Daten gespeichert werden sollen. Die Basis-Syntax hat dabei dieses Muster:

db.createCollection(<name>, { options } )

Der create-Befehl besitzt also die zwei Parameter name (Name der Collection) und options (optionale Optionen zum Konfigurieren der Collection). In den Optionen bestimmen Sie z. B., ob die in der Sammlung enthaltenen Dokumente in Ihrer Größe beschränkt sein sollen (capped: true) oder ob die Collection eine Begrenzung in Bytes (size: <number>) bzw. in der Anzahl an Dokumenten (max: <number>) besitzen soll. Eine Collection mit dem Namen meinecollection, einer Byte-Begrenzung von 6.142.800 und maximal 10.000 zugelassenen Dokumenten würden Sie beispielsweise mit folgendem Kommando erstellen (der Leerraum dient dabei einzig der Übersichtlichkeit):

db.createCollection ("meinecollection", { capped: true,
          size: 6142800,
          max: 10000 } )

Schritt 6: Dokumente in eine Collection einfügen

Nachdem die Sammelmappe angelegt wurde, können Sie diese mit Dokumenten füllen, wobei grundsätzlich drei verschiedene Methoden verfügbar sind:

  • .insertOne()
  • .insertMany()
  • .insert()

Sie fügen per Befehl also entweder nur ein Dokument (.insertOne), verschiedene Dokumente (.insertMany) oder ein oder mehrere Dokumente (.insert) hinzu. Im folgenden Beispiel zeigen wir Ihnen einen einfachen Datenbankeintrag, der aus den drei Informationen Name, Alter und Geschlecht besteht und als Dokument in die in Schritt 5 angelegte Sammelmappe meinecollection eingefügt wird:

db.meinecollection.insertOne(
{
    Name: "Name",
    Alter: 28,
    Geschlecht: "männlich"
  }
)

MongoDB erzeugt zu diesem und jedem weiteren Eintrag automatisch eine für die jeweilige Collection einzigartige ID.

Schritt 7: Dokumente verwalten

Im letzten Schritt unseres MongoDB-Tutorials geht es um die grundlegende Verwaltung der angelegten Dokumente. Bevor Sie Veränderungen an den Dokumenten vornehmen können, müssen Sie diese zunächst aufrufen. Diese Abfrage gelingt mit dem find-Kommando und kann mit den optionalen Parametern query filter (Abfragefilter) und projection (Spezifikation des Anzeigeergebnisses) präzisiert werden. Um beispielsweise das im vorigen Schritt erzeugte Dokument aufzurufen, eignet sich der folgende Befehl:

db.meinecollection.find( { Name: "Name", Alter: 28 } )

Wollen Sie dieses Dokument nun aktualisieren, benötigen Sie die update-Funktion. Hier definieren Sie den zu verändernden Wert, wählen einen Update-Operator und geben den veränderten Wert an. Wollen Sie z. B. das Feld Alter im genannten Beispiel anpassen, benötigen Sie den Operator $set:

db.meinecollection.update(

{ Alter: 28 },

{

  $set: { Alter: 30 }

}

)

Die weiteren update-Operatoren finden Sie hier.

Um die Dokumente einer Collection zu löschen, nutzen Sie das remove-Kommando:

db.meinecollection.remove ()

Ebenso gut können Sie einzelne Dokumente der Sammlung entfernen, indem Sie Kriterien wie die ID oder genaue Werte definieren und MongoDB damit signalisieren, um welche Datenbankeinträge es sich handelt. Je spezifischer Sie dabei sind, desto exakter kann das Datenbanksystem beim Löschungsprozess agieren. Der Befehl

db.meinecollection.remove ( { Alter: 28 } )

löscht zum Beispiel alle Einträge, die den Wert 28 für das Feld „Alter“ besitzen. Sie können auch angeben, dass einzig der erste Eintrag, auf den diese Eigenschaft zutrifft, entfernt werden soll, indem Sie den sogenannten justOne-Parameter (1) einfügen:

db.meinecollection.remove ( { Alter: 28 }, 1 )

Weitere Informationen wie beispielsweise über die Nutzeradministration, Sicherheitseinstellungen, die Erstellung von Replica oder die Verteilung der Daten auf mehrere Systeme erhalten Sie in der offiziellen Dokumentation auf mongodb.com sowie im MongoDB-Tutorial auf tutorialspoint.com.