Ihr erstes MongoDB-Lab

MongoDBBeginner
Jetzt üben

Einführung

Willkommen bei LabEx! Dies ist Ihr erstes MongoDB-Labor. Keine Sorge, wenn Sie noch nie eine Datenbank verwendet haben – wir führen Sie Schritt für Schritt durch den Prozess.

Zuerst wollen wir verstehen, was MongoDB ist: MongoDB ist ein Datenbanksystem, das Daten in einem flexiblen Dokumentenformat speichert. Im Gegensatz zu herkömmlichen Tabellenkalkulationen ermöglicht MongoDB Ihnen, Daten auf natürlichere Weise zu organisieren, ähnlich wie Sie Dateien in Ordnern auf Ihrem Computer organisieren würden.

In diesem Labor lernen Sie, wie Sie:

  1. Die MongoDB-Shell starten und verstehen, was sie ist
  2. Ihre erste Datenbank und Sammlung (collection) erstellen
  3. Daten in MongoDB hinzufügen und anzeigen
  4. Daten zählen und entfernen

Diese Fähigkeiten bilden die Grundlage Ihrer MongoDB-Reise. Lassen Sie uns beginnen!

Klicken Sie auf die Schaltfläche Weiter unten, um das Labor zu starten.

MongoDB-Shell starten

Bevor wir MongoDB starten, müssen wir zuerst ein Terminal in Ihrer LabEx VM öffnen. Sie haben zwei Möglichkeiten, dies zu tun:

  1. Terminal-Oberfläche: Wir empfehlen die Terminal-Oberfläche aufgrund ihrer Geschwindigkeit und Benutzerfreundlichkeit. Dies ist die Standardoberfläche für MongoDB-bezogene Labs.

    Das Terminal in der Terminal-Oberfläche öffnen
  2. Desktop-Oberfläche: Wenn Sie eine traditionellere Terminal-Erfahrung bevorzugen, können Sie die Desktop-Oberfläche nutzen. Schauen Sie auf die linke Seite Ihres Desktops und klicken Sie auf das Symbol mit der Bezeichnung Xfce Terminal.

    Das Terminal in der Desktop-Oberfläche öffnen

Beide Methoden funktionieren gleichermaßen gut – es sind lediglich unterschiedliche Wege, um auf dieselbe Laborumgebung zuzugreifen. Wählen Sie, was Ihnen lieber ist!

Nun starten wir die MongoDB-Shell, die wie ein Bedienfeld für unsere Datenbank ist. Betrachten Sie die Shell als eine Möglichkeit, direkt mit MongoDB zu kommunizieren – Sie geben Befehle ein, und MongoDB antwortet.

Um die MongoDB-Shell zu starten, geben Sie den folgenden Befehl in Ihr Terminal ein und drücken Sie Enter:

mongosh

Sie sehen eine Verbindungsnachricht, die anzeigt, dass Sie erfolgreich mit der lokalen MongoDB-Instanz verbunden sind. Die Ausgabe wird in etwa so aussehen:

Current Mongosh Log ID: 65a7f3e5f1a1234567890abc
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+x.y.z
Using MongoDB:          X.X.X
Using Mongosh:          X.X.X

For mongosh info, see: https://docs.mongodb.com/mongodb-shell/

test>

Der Prompt test> zeigt an, dass Sie sich nun innerhalb der mongosh-Shell befinden und mit der Standard-test-Datenbank verbunden sind.

Listen wir alle auf dem Server vorhandenen Datenbanken auf. Geben Sie den folgenden Befehl in die mongosh-Shell ein:

show dbs

Sie sehen eine Liste von Standarddatenbanken, die MongoDB für interne Zwecke verwendet:

admin     40.00 KiB
config   112.00 KiB
local     40.00 KiB

Im nächsten Schritt erstellen Sie Ihre eigene Datenbank.

Datenbank erstellen und Dokument einfügen

In MongoDB müssen Sie eine Datenbank nicht explizit erstellen. Sie wird automatisch erstellt, wenn Sie zum ersten Mal Daten darin speichern. Um zu einer neuen Datenbank zu wechseln, verwenden Sie den Befehl use.

Wechseln wir zu einer Datenbank namens mylab_database. Geben Sie in der mongosh-Shell Folgendes ein:

use mylab_database

Die Shell antwortet mit switched to db mylab_database. Auch wenn die Datenbank noch nicht erstellt wurde, arbeiten Sie nun in ihrem Kontext.

Daten in MongoDB werden in Sammlungen (collections) gespeichert, die Gruppen von Dokumenten sind. Ein Dokument ist eine Sammlung von Schlüssel-Wert-Paaren. Lassen Sie uns eine users-Sammlung erstellen, indem wir unser erstes Dokument einfügen.

Verwenden Sie die Methode insertOne(), um ein einzelnes Dokument zur users-Sammlung hinzuzufügen:

db.users.insertOne({ name: "JohnDoe", age: 30, city: "NewYork" })

Lassen Sie uns diesen Befehl aufschlüsseln:

  • db: Repräsentiert die aktuelle Datenbank (mylab_database).
  • users: Der Name der Sammlung. Sie wird automatisch erstellt.
  • insertOne(): Die Methode zum Einfügen eines Dokuments.
  • {...}: Das Dokument selbst, das Felder wie name, age und city enthält.

MongoDB bestätigt die Einfügung und gibt die eindeutige _id zurück, die es für das Dokument generiert hat:

{
  acknowledged: true,
  insertedId: ObjectId("...")
}

Die ObjectId ist eine eindeutige Kennung, die jedem Dokument automatisch zugewiesen wird.

Lassen Sie uns nun überprüfen, ob das Dokument hinzugefügt wurde. Verwenden Sie die Methode find(), um alle Dokumente in der users-Sammlung anzuzeigen:

db.users.find()

Die Ausgabe zeigt das gerade eingefügte Dokument an:

[
  {
    _id: ObjectId("..."),
    name: 'JohnDoe',
    age: 30,
    city: 'NewYork'
  }
]

Mehrere Dokumente einfügen

Oft müssen Sie mehrere Dokumente auf einmal hinzufügen. Die Methode insertMany() ist dafür perfekt geeignet. Sie nimmt ein Array von Dokumenten als Argument.

Lassen Sie uns eine neue books-Sammlung erstellen und mit einem einzigen Befehl drei Bücher hinzufügen.

db.books.insertMany([
    { title: "MongoDBBasics", author: "JaneSmith", year: 2023 },
    { title: "PythonProgramming", author: "JohnDoe", year: 2022 },
    { title: "DataScienceHandbook", author: "AliceJohnson", year: 2021 }
])

Beachten Sie die eckigen Klammern [ ], die ein Array definieren. Jedes Objekt {...} innerhalb des Arrays ist ein separates Dokument.

MongoDB bestätigt die Operation und gibt die _id-Werte für alle eingefügten Dokumente zurück:

{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("..."),
    '1': ObjectId("..."),
    '2': ObjectId("...")
  }
}

Um alle Dokumente in Ihrer neuen books-Sammlung anzuzeigen, verwenden Sie erneut die Methode find():

db.books.find()

Die Ausgabe listet alle drei gerade hinzugefügten Buchdokumente auf.

Dokumente abfragen und zählen

Nachdem Sie nun Daten haben, lernen wir, wie Sie diese abrufen und zählen.

Um die Gesamtzahl der Dokumente in einer Sammlung zu zählen, verwenden Sie die Methode countDocuments(). Zählen wir die Bücher in unserer books-Sammlung:

db.books.countDocuments()

Der Befehl gibt die Gesamtzahl zurück:

3

Um bestimmte Dokumente zu finden, übergeben Sie einen Abfragefilter (query filter) an die Methode find(). Ein Abfragefilter ist ein Dokument, das die Bedingungen für die Suche festlegt.

Um beispielsweise alle Bücher zu finden, die von "JohnDoe" geschrieben wurden, verwenden Sie die folgende Abfrage:

db.books.find({ author: "JohnDoe" })

Der Filter { author: "JohnDoe" } weist MongoDB an, nur die Dokumente zurückzugeben, bei denen das Feld author den Wert "JohnDoe" hat.

Sie können auch Abfragen basierend auf numerischen Werten durchführen. Suchen wir alle Bücher, die im Jahr 2023 veröffentlicht wurden:

db.books.find({ year: 2023 })

Dies gibt das Buch "MongoDBBasics" zurück. Die Methode find() ist ein leistungsstarkes Werkzeug zum Abrufen der exakten Daten, die Sie benötigen.

Dokumente entfernen

Schließlich lernen wir, wie man Dokumente aus einer Sammlung entfernt.

Um ein einzelnes Dokument zu entfernen, das einer bestimmten Bedingung entspricht, verwenden Sie die Methode deleteOne(). Entfernen wir das Buch mit dem Titel "MongoDBBasics":

db.books.deleteOne({ title: "MongoDBBasics" })

Die Shell bestätigt, dass ein Dokument gelöscht wurde:

{ acknowledged: true, deletedCount: 1 }

Um mehrere Dokumente zu entfernen, die einer Bedingung entsprechen, verwenden Sie deleteMany(). Diese Methode unterstützt Query-Operatoren, um komplexere Bedingungen zu erstellen. $lt steht beispielsweise für "less than" (kleiner als).

Entfernen wir alle Bücher, die vor dem Jahr 2022 veröffentlicht wurden:

db.books.deleteMany({ year: { $lt: 2022 } })

Dieser Befehl löscht alle Dokumente, bei denen das Feld year kleiner als 2022 ist. In unserem Fall wird dadurch "DataScienceHandbook" gelöscht.

Um zu sehen, welche Bücher übrig geblieben sind, führen Sie ein letztes Mal den Befehl find() aus:

db.books.find()

Nur das Buch "PythonProgramming" sollte noch in der Sammlung vorhanden sein.

Sie haben nun die grundlegenden CRUD-Operationen (Create, Read, Update, Delete) in MongoDB geübt. Um die mongosh-Shell zu beenden, geben Sie ein:

exit

Zusammenfassung

Herzlichen Glückwunsch zum Abschluss Ihres ersten MongoDB-Labs! Sie haben die Kernoperationen zur Verwaltung von Daten in einer MongoDB-Datenbank erfolgreich erlernt und geübt.

In diesem Lab haben Sie gelernt, wie Sie:

  • Die mongosh-Shell starten, um mit einem MongoDB-Server zu interagieren.
  • Den use-Befehl verwenden, um zu einer Datenbank zu wechseln.
  • Einzelne und mehrere Dokumente mit insertOne() und insertMany() einfügen.
  • Dokumente mit find() mit und ohne Abfragefilter abrufen.
  • Dokumente in einer Sammlung mit countDocuments() zählen.
  • Dokumente mit deleteOne() und deleteMany() entfernen.

Diese grundlegenden Fähigkeiten sind die Bausteine für die Entwicklung leistungsstarker Anwendungen mit MongoDB. Übung ist der Schlüssel, also experimentieren Sie ruhig weiter mit den gelernten Befehlen.