22 MongoDB
MongoDB ist eine NoSQL-Datenbank, die für ihre Flexibilität und Skalierbarkeit bekannt ist. Sie speichert Daten in JSON-ähnlichen Dokumenten, was es einfach macht, komplexe Datenstrukturen zu handhaben.
Beispiel eines MongoDB-Dokuments:
{
"_id": ObjectId("5f8a7b2b9d3b2c1f4c6d8e7a"),
"name": "Max Mustermann",
"age": 30,
"skills": ["Python", "Data Analysis", "Machine Learning"],
"address": {
"street": "Musterstraße 123",
"city": "Musterstadt",
"country": "Deutschland"
}
}
Diese Strukturierung ermöglicht es, hierarchische Beziehungen und andere komplexe Datentypen ohne die Einschränkungen eines starren, tabellenbasierten Schemas darzustellen. Dadurch können Änderungen am Datenmodell schneller und effizienter umgesetzt werden.
Hauptmerkmale von MongoDB:
Flexibilität: MongoDB verwendet ein dokumentenorientiertes Modell, bei dem die Daten in Dokumenten gespeichert werden, die ähnliche Strukturen wie JSON haben. Dies ermöglicht eine hohe Flexibilität bei der Strukturierung der Daten, da jedes Dokument unterschiedliche Felder und Datentypen enthalten kann.
Skalierbarkeit: MongoDB ist darauf ausgelegt, horizontal zu skalieren, was bedeutet, dass die Datenbank einfach auf mehrere Server verteilt werden kann. Dies wird durch Sharding erreicht, eine Methode zur Verteilung von Daten über mehrere Maschinen, um sowohl die Speicherkapazität als auch die Verarbeitungsgeschwindigkeit zu erhöhen.
Leistungsfähigkeit: Durch die Möglichkeit, Daten in einem einzigen Dokument zu speichern, kann MongoDB oft schnellere Schreib- und Leseoperationen durchführen als relationale Datenbanken.
Um mit MongoDB zu beginnen, muss zunächst der MongoDB-Dienst gestartet und dann die MongoDB Shell geöffnet werden. Sobald die Shell geöffnet ist, können grundlegende Befehle ausgeführt werden, um Datenbanken und Sammlungen zu erstellen, Daten einzufügen und Abfragen auszuführen.
22.1 MongoDB-Installation in Windows
In diesem Abschnitt wird die Installation der NoSQL-Datenbank MongoDB und der MongoDB Shell (mongosh) behandelt.
22.1.1 Installationsprozess
- MongoDB herunterladen:
Die offizielle MongoDB-Download-Seite besuchen und die aktuelle (“current”) MongoDB Community Server-Version für Windows herunterladen.- Version: … (current).
- Platform: Windows x64
- Package: msi
- Installation:
- Das Installationsprogramm ausführen und den Anweisungen folgen.
- “Complete” als Setup-Typ wählen.
- Die Option “Install MongoDB as a Service” aktivieren.
- MongoDB Shell (mongosh) herunterladen:
Die MongoDB Shell Download-Seite besuchen und die aktuelle Version von MongoDB Shell herunterladen (als Plattform Windows und als Package msi wählen).
Um MongoDB von jeder Eingabeaufforderung aus zugänglich zu machen, wird nun eine Umgebungsvariable gesetzt. Dadurch können mongod
und mongo
von jeder Eingabeaufforderung aus ohne Angabe des vollständigen Pfades ausgeführt werden.
22.1.2 Umgebungsvariable setzen
Hier ist eine detaillierte Anleitung, wie die Umgebungsvariable unter Windows gesetzt werden kann:
- Pfad zu
mongod.exe
undmongosh.exe
ermitteln:- Der Pfad ist in der Regel
C:\Program Files\MongoDB\Server\<Version>\bin
. Den Pfad im Datei-Explorer finden und notieren (den Platzhaltermit der tatsächlichen Version ersetzen).
- Der Pfad ist in der Regel
- Umgebungsvariablen öffnen:
- Die Windows-Taste drücken und “Umgebungsvariablen” eingeben.
- “Umgebungsvariablen für dieses Konto bearbeiten” oder “Systemumgebungsvariablen bearbeiten” auswählen.
- Systemumgebungsvariablen bearbeiten:
- Im Fenster “Systemeigenschaften” auf die Schaltfläche “Umgebungsvariablen” klicken.
- Pfad-Variable bearbeiten:
- Im Abschnitt “Systemvariablen” die Variable “Path” suchen und auswählen. Dann auf “Bearbeiten” klicken.
- Neuen Pfad hinzufügen:
- Auf “Neu” klicken und den Pfad zu
mongod.exe
hinzufügen (z.B.C:\Program Files\MongoDB\Server\<Version>\bin
).
- Auf “Neu” klicken und den Pfad zu
- Änderungen speichern:
- Auf “OK” klicken, um alle Fenster zu schließen und die Änderungen zu speichern.
Um sicherzustellen, dass die Umgebungsvariablen korrekt gesetzt wurden, eine neue Eingabeaufforderung öffnen und die folgenden Befehle ausführen:
mongod --version
mongosh --version
Wenn beide Befehle die Versionsnummern von MongoDB und MongoDB Shell (mongosh) zurückgeben, wurde die Umgebungsvariable erfolgreich gesetzt.
22.2 MongoDB starten und stoppen in Windows
MongoDB sollte als Dienst automatisch gestartet werden, wenn die Option “Install MongoDB as a Service” während der Installation aktiviert wurde. In diesem Fall müssen zunächst keine weiteren Schritte unternommen werden.
22.2.1 MongoDB starten
Die folgenden Schritte sind nur dann auszuführen, falls MongoDB nicht automatisch gestartet wurde oder falls der Dienst neu gestartet werden soll:
- Öffnen der Dienstverwaltung:
- Die
Windows-Taste
+R
drücken, um das Ausführen-Dialogfeld zu öffnen. - “services.msc” eingeben und Enter drücken.
- Die
- MongoDB-Dienst finden:
- Im Fenster “Dienste” nach unten scrollen, bis der Dienst namens “MongoDB” gefunden wird.
- Dienst starten:
- Mit der rechten Maustaste auf den
MongoDB
-Dienst klicken und “Starten” aus dem Kontextmenü wählen.
- Mit der rechten Maustaste auf den
Alternativ kann der MongoDB-Dienst auch über die Eingabeaufforderung gestartet werden:
- Eingabeaufforderung als Administrator öffnen:
- Die Windows-Taste drücken, “Eingabeaufforderung” eingeben, mit der rechten Maustaste auf Eingabeaufforderung klicken und “Als Administrator ausführen” wählen.
- Folgenden Befehl ausführen, um den MongoDB-Dienst zu starten:
net start MongoDB
22.2.2 MongoDB stoppen
Um MongoDB zu stoppen, kann entweder die Dienstverwaltung verwendet oder ein Befehl in der Eingabeaufforderung ausgeführt werden.
So wird der MongoDB-Dienst manuell gestoppt:
- Dienstverwaltung öffnen:
- Die “Windows-Taste” + “R” drücken, um das Ausführen-Dialogfeld zu öffnen.
- “services.msc” eingeben und Enter drücken.
- MongoDB-Dienst finden:
- Im Fenster “Dienste” nach unten scrollen, bis der Dienst namens “MongoDB” gefunden wird.
- Dienst stoppen:
- Mit der rechten Maustaste auf den
MongoDB
-Dienst klicken und “Beenden” aus dem Kontextmenü wählen.
- Mit der rechten Maustaste auf den
Alternativ kann der MongoDB-Dienst auch über die Eingabeaufforderung gestoppt werden:
- Eingabeaufforderung als Administrator öffnen:
- Die “Windows-Taste” drücken, “Eingabeaufforderung” eingeben, mit der rechten Maustaste auf Eingabeaufforderung klicken und “Als Administrator ausführen” wählen.
- Folgenden Befehl ausführen, um den MongoDB-Dienst zu stoppen:
net stop MongoDB
22.3 MongoDB-Installation auf Mac
Wir folgen der Installationsanweisung der MongoDB-Dokumentation.
22.3.1 Xcode Command-Line Tools
Zunächst müssen wir die Xcode Command-Line Tools von Apple installieren (falls noch nicht installiert).
Im Terminal prüfen, ob XCode installiert ist (wenn Xcode installiert ist, wird die Version angezeigt. Wenn nicht, wird eine entsprechende Fehlermeldung angezeigt und XCode muss installiert werden):
xcode-select --version
Falls notwendig, die Xcode Command-Line Tools mit folgendem Befehl im macOS Terminal installieren:
xcode-select --install
22.3.2 Homebrew installieren
Homebrew ist ein beliebter Paketmanager für macOS, der die Installation von Software und Entwickler-Tools erheblich vereinfacht. Damit lassen sich viele nützliche Programme über die Kommandozeile installieren, die sonst möglicherweise kompliziert zu installieren wären.
Diesen Befehl im Terminal ausführen, um den Homebrew-Paketmanager zu installieren:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
22.3.3 MongoDB intsallieren
MongoDB und die Datenbank-Tools herunterladen, indem folgender Befehl im macOS Terminal ausgeführt wird:
brew tap mongodb/brew
Homebrew und alle vorhandenen Formeln aktualisieren:
brew update
Um MongoDB zu installieren, folgenden Befehl im macOS Terminal ausführen:
brew install mongodb-community@7.0
Nachdem alles installiert wurde, eine neue Eingabeaufforderung öffnen und die folgenden Befehle ausführen:
Prüfung mongod-Server:
mongod --version
Die MongoDB Shell prüfen:
mongosh --version
Wenn bei beiden Befehlen eine Version angezeigt wird, war die Installation erfolgreich.
22.4 MongoDB starten und stoppen auf Mac
Nach der Installation von MongoDB kann der Datenbankdienst einfach mit Homebrew gestartet werden. Homebrew verwaltet Dienste wie MongoDB und ermöglicht es, diese mit einfachen Befehlen zu starten und zu stoppen.
22.4.1 MongoDB starten
So wird der MongoDB-Dienst gestartet:
- Terminal öffnen:
- Das Terminal im Ordner “Dienstprogramme” innerhalb des Ordners “Programme” finden oder “cmd” + “Leertaste” drücken und “Terminal” eingeben.
- MongoDB-Dienst starten:
- Folgenden Befehl im Terminal eingeben und “Enter” drücken:
brew services start mongodb-community@7.0
- Wenn alles korrekt eingerichtet ist, erscheint eine Bestätigungsmeldung, dass der Dienst gestartet wurde.
Um sicherzustellen, dass MongoDB korrekt gestartet wurde und läuft, kann eine Liste aller von Homebrew verwalteten Dienste angezeigt werden.
So wird der Status von MongoDB überprüft:
Folgenden Befehl im Terminal eingeben und “Enter” drücken:
brew services list
- Dieser Befehl zeigt eine Liste aller Dienste an, die von Homebrew verwaltet werden, sowie deren aktuellen Status.
Den Eintrag für
mongodb-community
überprüfen:- In der Liste sollte
mongodb-community
zu sehen sein, gefolgt von der Versionsnummer und dem Statusstarted
. Dies zeigt an, dass MongoDB erfolgreich läuft.
- In der Liste sollte
22.4.2 MongoDB stoppen
Wenn MongoDB beendet werden soll, kann dies mit einem einfachen Homebrew-Befehl getan werden.
Folgenden Befehl im Terminal eingeben und “Enter” drücken:
brew services stop mongodb-community@7.0
Es sollte eine Bestätigungsmeldung erscheinen, dass der Dienst gestoppt wurde.
22.5 MongoDB Basics
In diesem Abschnitt werden die grundlegende Nutzung von MongoDB, einschließlich der Verbindung zur Datenbank, grundlegende Befehle und Datenbankmanipulation erläutert.
22.5.1 Verbindung zur MongoDB-Instanz
Die MongoDB Shell (mongosh) ist das primäre Interface zur Interaktion mit der MongoDB-Datenbank. Sie ermöglicht es, Befehle direkt einzugeben und auszuführen. Um die MongoDB Shell zu starten und sich mit der laufenden MongoDB-Instanz zu verbinden, eine Kommandozeile (Eingabeaufforderung bzw. Terminal) öffnen und den folgenden Befehl eingeben:
mongosh
Wenn die Verbindung erfolgreich ist, erscheint die mongosh-Eingabeaufforderung:
test>
Falls eine Fehlermeldung auftritt, sicherstellen, dass MongoDB auf dem System läuft.
22.5.2 Datenbanken anzeigen
Um alle verfügbaren Datenbanken aufzulisten, folgenden Befehl verwenden:
show dbs
Dieser Befehl zeigt eine Liste aller Datenbanken, die auf der MongoDB-Instanz gespeichert sind.
22.5.3 Datenbank auswählen oder erstellen
Um eine spezifische Datenbank auszuwählen oder zu erstellen, den use
-Befehl verwenden:
use mydatabase
Dieser Befehl wechselt zur Datenbank mydatabase
. Wenn die Datenbank noch nicht existiert, wird sie erstellt, sobald Daten eingefügt werden.
22.5.4 Sammlung (Collection) erstellen
Um eine neue Sammlung innerhalb der aktuellen Datenbank zu erstellen, den createCollection
-Befehl verwenden:
db.createCollection("mycollection")
Dieser Befehl erstellt eine neue Sammlung namens mycollection
.
22.5.5 Dokument einfügen
Um ein Dokument in eine Sammlung einzufügen, den insertOne
-Befehl verwenden:
db.mycollection.insertOne({name: "Jan", age: 44})
Dieser Befehl fügt ein neues Dokument in die Sammlung mycollection
ein.
22.5.6 Dokumente abfragen
Um alle Dokumente in einer Sammlung abzufragen, den find
-Befehl verwenden:
db.mycollection.find()
Dieser Befehl gibt alle Dokumente in der Sammlung mycollection
zurück.
Beispiel-Output der Abfrage:
[
("666d5f5b50a5f96c3ed89649"), name: 'Jan', age: 44 },
{ _id: ObjectId{ _id: ObjectId("666d7727c1365bab40959889"), name: 'Alice', age: 25 }
]
22.6 MongoDB Python-Integration
Die Integration von MongoDB in Python-Anwendungen ermöglicht es, die Vorteile von MongoDB in Data Science-Projekten zu nutzen. Hier wird erklärt, wie eine Umgebung eingerichtet und eine Verbindung zu MongoDB hergestellt wird.
22.6.1 Umgebung erstellen
Um eine Umgebung einzurichten, diese Anweisungen basierend auf dem Betriebssystem befolgen:
- Zugriff auf die Eingabeaufforderung oder das Terminal:
- Windows-Benutzer: Die Anaconda-Eingabeaufforderung über das Startmenü öffnen.
- macOS-Benutzer: Das Terminal unter Programme > Dienstprogramme öffnen oder nach “Terminal” suchen.
- Erstellen der Umgebung:
- Den folgenden Befehl verwenden, um eine neue Conda-Umgebung namens
mongodb
mit Python 3.11 und pip zu erstellen:
conda create --name mongodb python=3.11 pip
- Den folgenden Befehl verwenden, um eine neue Conda-Umgebung namens
- Aktivieren der Umgebung:
- Sobald die Umgebung erstellt ist, diese aktivieren mit:
conda activate mongodb
- Die KOmmandozeile ändert sich, um anzuzeigen, dass die Umgebung
mongodb
aktiv ist.
- Installieren der benötigten Bibliotheken:
- Mit aktivierter Umgebung die Bibliotheken installieren:
pip install pymongo gridfs pillow jupyter ipykernel pandas
Erklärung der Bibliotheken- pymongo: Bietet eine Python-Schnittstelle zu MongoDB, einer NoSQL-Datenbank.
- pillow: Eine Bibliothek für die Bildverarbeitung in Python, die das Öffnen, Bearbeiten und Speichern von Bilddateien unterstützt.
- jupyter: Eine interaktive Entwicklungsumgebung zur Erstellung und Ausführung von Jupyter-Notebooks.
- ipykernel: Eine Implementierung des Jupyter-Kernels für Python, die die Ausführung von Python-Code in Jupyter-Notebooks ermöglicht.
- pandas: Eine leistungsfähige Datenanalysebibliothek für Python, die Datenmanipulation und -analyse vereinfacht.
- Dieser Befehl ruft alle Pakete von PyPI ab und installiert sie.
22.6.2 Verbindung herstellen
Um mit MongoDB zu arbeiten, muss in einem Jupyter Notebook eine Verbindung zur Datenbank hergestellt werden. Dies erfolgt in mehreren Schritten:
Schritt 1: Importieren der pymongo-Bibliothek
Zuerst muss die pymongo
-Bibliothek importiert werden, die eine Schnittstelle zwischen Python und MongoDB bietet.
import pymongo
Schritt 2: Erstellen eines MongoDB-Clients
Eine Verbindung zum MongoDB-Server erstellen. Der Standardanschluss für MongoDB ist 27017
.
# Verbindung zur MongoDB herstellen
= pymongo.MongoClient("mongodb://localhost:27017/") client
Hier wird localhost
verwendet, da der MongoDB-Server auf dem lokalen Rechner läuft. Wenn der Server auf einem Remote-Server läuft, localhost
durch die IP-Adresse oder den Domain-Namen des Servers ersetzen.
Schritt 3: Auswählen der Datenbank
MongoDB organisiert Daten in Datenbanken. Um eine bestimmte Datenbank zu verwenden, auf diese wie folgt zugreifen:
# Datenbank auswählen
= client["mydatabase"] db
Falls die Datenbank noch nicht existiert, wird sie erstellt, sobald ein Dokument eingefügt wird.
Schritt 4: Auswählen der Sammlung
Innerhalb einer Datenbank organisiert MongoDB Daten in Sammlungen (ähnlich wie Tabellen in SQL-Datenbanken). Eine Sammlung wie folgt auswählen:
# Sammlung auswählen
= db["mycollection"] collection
Auch hier gilt: Falls die Sammlung noch nicht existiert, wird sie erstellt, sobald ein Dokument eingefügt wird.
Schritt 5: Einfügen eines Dokuments
Ein Dokument in MongoDB ist ein JSON-ähnliches Objekt. Ein Dokument wie folgt einfügen:
# Dokument einfügen
= collection.insert_one({"name": "Alice", "age": 25})
result print(f"Eingefügtes Dokument ID: {result.inserted_id}")
Der Befehl insert_one
fügt ein einzelnes Dokument in die Sammlung ein und gibt ein Ergebnisobjekt zurück, das die ID des eingefügten Dokuments enthält.
Schritt 6: Abfragen von Dokumenten
Um Dokumente aus einer Sammlung abzufragen, die Methode find
verwenden. Diese gibt alle Dokumente in der Sammlung zurück:
# Dokumente abfragen
for doc in collection.find():
print(doc)
Dieser Code durchläuft alle Dokumente in der Sammlung und druckt sie aus.
Hier der Output der Abfrage:
{'_id': ObjectId('666d5f5b50a5f96c3ed89649'), 'name': 'Jan', 'age': 44}
{'_id': ObjectId('666d7727c1365bab40959889'), 'name': 'Alice', 'age': 25}