MongoDB – Pymongo mit Abfragen
Was ist MongoDB?
MongoDB ist wie eine sehr große, flexible Schubladenkommode für deine Daten. Stell dir vor, jede Schublade ist eine Art Ordner, den wir „Collection“ nennen. In diese Ordner kannst du Informationen ablegen, die zusammengehören, zum Beispiel alle Kundendaten oder alle Produktinformationen.
Das Besondere ist, dass du in diese „Ordner“ nicht nur Zettel mit immer gleichen Feldern legen musst. Jeder „Zettel“ (wir nennen ihn „Dokument“) kann ganz anders aussehen und unterschiedliche Informationen enthalten. Das macht MongoDB sehr flexibel, wenn sich deine Daten mal ändern oder du neue Arten von Informationen speichern möchtest.
Anstatt Tabellen mit festen Spalten wie in einer herkömmlichen Datenbank benutzt MongoDB diese flexiblen „Dokumente“. Das macht es einfacher, schnell neue Dinge zu entwickeln und mit Daten zu arbeiten, die nicht immer gleich strukturiert sind.
Was ist Pymongo?
Pymongo ist wie ein Werkzeugkasten, mit dem dein Python-Programm mit der MongoDB-Datenbank sprechen kann. Stell es dir so vor: MongoDB ist die große Schubladenkommode mit deinen Daten, und Pymongo sind die Werkzeuge, die dein Python-Programm braucht, um Schubladen zu öffnen, neue Zettel (Dokumente) hineinzulegen, nach bestimmten Zetteln zu suchen oder Zettel zu verändern.
Mit Pymongo kann dein Python-Code also Befehle an MongoDB senden, um Daten zu speichern und wieder abzurufen. Es hilft Python, die „Sprache“ von MongoDB zu verstehen, sodass die beiden gut zusammenarbeiten können. Kurz gesagt: Pymongo verbindet dein Python-Programm mit deiner MongoDB-Datenbank.
Meine Versionen für dieses Script:
- MongoDB: 7.0.20
- Mongosh: 2.5.0
- pymongo 4.11.3
Installation von Pymongo in der Kommandozeile (Eingabeaufforderung bei Windows):
pip3 install pymongo
sich installieren kann. Windows-Benutzer sollten sich vorher natürlich Python auf dem Rechner installieren. Linux-Benutzer haben das sofort bei fast jeder Distribution auf dem Rechner bei der Installation des Betriebssystems.
Das Script:
import pymongo
a = pymongo.MongoClient("mongodb://localhost:27017/")
b = a["Laender"]
mycol = b["Espana"]
myquery = {"Ciudad": {"$regex": "^Mad"}}
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
Was ist regex?
Stell dir „regex“ wie einen sehr cleveren Platzhalter oder ein Suchmuster vor, nach dem du in deinen Daten suchen kannst. Anstatt nach einem ganz bestimmten Wort zu suchen, kannst du mit „regex“ nach Wörtern suchen, die ein bestimmtes Muster haben.
Zum Beispiel könntest du mit „regex“ alle Wörter finden, die mit „Apfel“ beginnen, oder alle Zahlen, die mit „19“ anfangen. Es ist wie ein Super-Filter, der dir hilft, genau die Informationen zu finden, die du brauchst, auch wenn du nicht exakt weißt, wie sie geschrieben sind.
Meine Ausgabe des Scripts:
sven@fedora:~/Privat$ /bin/python /home/sven/Privat/Online_Webseite_sven-essen_de/mongodb_abfragen.py
{‚_id‘: ObjectId(‚636c98fb74a5f8fbc573a8db‘), ‚Com autónoma‘: ‚Castilla-La Mancha‘, ‚Provincia‘: ‚Albacete‘, ‚Ciudad‘: ‚Madrigueras‘, ‚Isla‘: ‚No‘, ‚Altitud‘: 690, ‚Superficie‘: 73.31, ‚Núcleos de poplación‘: 0, ‚Poplación‘: 4654, ‚Densidad‘: 63.39, ‚Código postal‘: 2230, ‚Playa‘: ‚No‘, ‚Ayuntamiento‘: ‚Pl. Ayuntamiento, 1, 02230 Madrigueras, Albacete‘, ‚Ayuntamiento internet‘: ‚http://www.madrigueras.es/‘, ‚Piscina‘: ‚No‘, ‚Otros‘: ‚Madrigueras Centro de Salud C. San Jorge, 2, 02230 Madrigueras, Albacete, Casa de Cultura‘}