06 Mongo DB Flashcards
Ein Sportverein speichert für jedes seiner Mitglieder die Mitgliedsnummer, den Vor- und ¨
Nachnamen sowie die Abteilungen, in denen das Mitglied ist. Jedes Mitglied kann in beliebig
vielen Abteilungen sein.
Das Vereinsmitglied mit der Mitgliedsnummer 123456 heißt Klaus Meier und ist in den Abteilungen Basketball und Schwimmen.
Wie könnte ein geeignetes Dokument aussehen, um die Daten dieses Mitglieds in MongoDB zu
speichern?
{ "Mitgliedsnummer" : "123456", "Vorname" : "Klaus", "Nachname" : "Meier", "Abteilungen" : [ "Basketball", "Schwimmen" ] }
MongoDB ist ein schema-freies Datenbankmanagementsystem.
Was bedeutet das? Gehen Sie dabei auf das Erzeugen einer Collection und das Speichern neuer
Dokumente in einer Collection ein!
Es gibt keine festgelegten Dokument Struktur, dass heißt, dass es keine automatische Persistenz Prüfung gibt.
Durch die Schemafreiheit, kann sich der Aufbau der Dokumente innerhalb einer Collection unterscheiden allerdings sollten sich in Ihrer Funktionalität ähneln. (Ebenfalls wird keine referentielle Integrität geprüft)
Welchen großen Vorteil hat Schema-Freiheit, wenn man nachträglich z. B. zusätzliche Daten in den Dokumenten speichern möchte? Warum ist das vor allem für große Internetfirmen wichtig
Es müssen keine Änderungen an der Datenbank selbst durchgeführt werden sondern nur an der Anwendung. Die zusätzlichen Daten können einfach bei neuen
Dokumenten hinzugefügt werden, ohne die alten Dokumente umändern zu müssen.
Vor allem bei großen Internetfirmen, ist die Flexibilität sehr wichtig, da es oft zu Änderungen kommen kann.
Der Aufwand bei solchen Änderungen, die Datenbank anpassen zu müssen, würde die Nützlichkeit der neuen Daten manchmal übertreffen.
Collection
„Sammlung“ von Dokumenten (vgl. Tabellenzeilen in relationaler DB)
Begriffe in MongoDB
Datenbank
Datenbank-Tabelle
Tabellenyeile/Dateensatz/Tupel
Tabellenspalte/Attribute
Datenbank: Database
Datenbank-Tabelle: Collection
Tabellenzeile/Datensatz/Tupel: Document
Tabellenspalte/Attribute: Field
Auswählen einer Datenbank (ggf. erst neu anlegen)
use < name >
Anzeigen aktuell ausgewählte Datenbank
db
Anzeigen vorhandender Datenbank
show dbs
Anlegen einer Collection
db.createCollection (“collectionname”)
Ansehen aller vorhandenen Collection
show collections
Anzeigen aller Dokumente einer Collection
db.collectionname.find().pretty()