Ihr erstes MongoDB-Lab

MongoDBBeginner
Jetzt üben

Einführung

Willkommen bei LabEx! Dies ist Ihr erstes MongoDB-Lab. Machen Sie sich keine Sorgen, wenn Sie noch nie eine Datenbank verwendet haben – wir führen Sie durch jeden Schritt.

Zunächst sehen wir uns an, was MongoDB ist: MongoDB ist ein Datenbanksystem, das Daten in einem flexiblen Dokumentformat speichert. Anders als bei herkömmlichen Tabellen können Sie Daten mit MongoDB auf eine natürlichere Weise organisieren – ähnlich wie Dateien in Ordnern auf Ihrem Computer.

In diesem Lab lernen Sie:

  1. die MongoDB-Shell zu starten und zu verstehen, was sie ist
  2. Ihre erste Datenbank und Collection zu erstellen
  3. Daten in MongoDB hinzuzufügen und anzuzeigen
  4. Daten abzufragen, zu aktualisieren und zu entfernen

Diese Kenntnisse bilden die Grundlage für Ihre Arbeit mit MongoDB. Beginnen wir!

Klicken Sie unten auf die Schaltfläche Continue, um das Lab zu starten.

Starten Sie die MongoDB-Shell

In diesem Schritt öffnen Sie ein Terminal und starten die MongoDB-Shell in Ihrer LabEx-VM.

Wir empfehlen die Terminal Interface, weil sie schnell und einfach zu bedienen ist. Sie ist die Standardschnittstelle für MongoDB-bezogene Labs.

open the terminal in terminal interface

Wenn Sie eine herkömmlichere Terminalumgebung bevorzugen, verwenden Sie die Desktop Interface. Sehen Sie auf die linke Seite Ihres Desktops und klicken Sie auf das Symbol Xfce Terminal.

open the terminal in desktop interface

Beide Methoden funktionieren gleichermaßen gut – sie bieten lediglich unterschiedliche Zugänge zur selben Lab-Umgebung. Wählen Sie die Methode, die Sie bevorzugen.

Starten wir nun die MongoDB-Shell. Sie können sie sich wie ein Bedienfeld für unsere Datenbank vorstellen. Über die Shell kommunizieren Sie direkt mit MongoDB: Sie geben Befehle ein, und MongoDB antwortet.

Geben Sie zum Starten der MongoDB-Shell den folgenden Befehl in Ihr Terminal ein und drücken Sie die Eingabetaste:

mongosh

Sie sehen eine Verbindungsmeldung. Sie zeigt an, dass Sie erfolgreich eine Verbindung zur lokalen MongoDB-Instanz hergestellt haben. Die Ausgabe sieht ungefähr so aus:

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>

Die Eingabeaufforderung test> zeigt an, dass Sie sich jetzt in der mongosh-Shell befinden und mit der standardmäßig ausgewählten Datenbank test verbunden sind.

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

show dbs

Sie sehen eine Liste der 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.

Erstellen Sie eine Datenbank und fügen Sie ein Dokument ein

In diesem Schritt erstellen Sie eine Datenbank und fügen Ihr erstes Dokument ein. In MongoDB müssen Sie eine Datenbank nicht ausdrücklich erstellen. Sie wird automatisch erstellt, sobald Sie zum ersten Mal Daten darin speichern. Um zu einer neuen Datenbank zu wechseln, verwenden Sie den Befehl use.

Wechseln Sie nun zu einer Datenbank mit dem Namen mylab_database. Geben Sie in der mongosh-Shell Folgendes ein:

use mylab_database

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

MongoDB speichert Daten in Collections. Eine Collection ist eine Gruppe von Dokumenten. Ein Dokument besteht aus Schlüssel-Wert-Paaren. Erstellen Sie nun eine users-Collection, indem Sie Ihr erstes Dokument einfügen.

Verwenden Sie die Methode insertOne(), um ein einzelnes Dokument in die Collection users einzufügen:

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

Sehen wir uns diesen Befehl im Detail an:

  • db: steht für die aktuelle Datenbank (mylab_database).
  • users: ist der Name der Collection. Sie wird automatisch erstellt.
  • insertOne(): ist die Methode zum Einfügen eines Dokuments.
  • {...}: ist das Dokument selbst. Es enthält Felder wie name, age und city.

MongoDB bestätigt das Einfügen und gibt die eindeutige _id zurück, die für das Dokument erzeugt wurde:

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

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

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

db.users.find()

Die Ausgabe zeigt das Dokument, das Sie gerade eingefügt haben:

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

Mehrere Dokumente einfügen

In diesem Schritt fügen Sie mehrere Dokumente gleichzeitig hinzu. Die Methode insertMany() erwartet ein Array von Dokumenten als Argument.

Erstellen Sie eine neue Collection books und fügen Sie ihr mit einem einzigen Befehl drei Bücher hinzu.

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 [ ]. Sie definieren ein Array. Jedes Objekt {...} innerhalb des Arrays ist ein eigenes Dokument.

MongoDB bestätigt den Vorgang und gibt die _id-Werte aller eingefügten Dokumente zurück:

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

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

db.books.find()

Die Ausgabe listet alle drei Bücher auf, die Sie gerade hinzugefügt haben.

Dokumente abfragen und zählen

In diesem Schritt rufen Sie die eingefügten Daten ab und zählen sie.

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

db.books.countDocuments()

Der Befehl gibt die Gesamtzahl zurück:

3

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

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

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

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

Sie können auch anhand numerischer Werte suchen. Finden Sie nun alle Bücher, die im Jahr 2023 veröffentlicht wurden:

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

Diese Abfrage gibt das Buch "MongoDBBasics" zurück. Die Methode find() ist ein leistungsfähiges Werkzeug, um genau die benötigten Daten abzurufen.

Dokumente aktualisieren und entfernen

In diesem Schritt aktualisieren und entfernen Sie Dokumente aus einer Collection.

Um ein vorhandenes Dokument zu ändern, verwenden Sie die Methode updateOne(). Sie erwartet einen Filter, der das Dokument auswählt, und ein Update-Dokument, das die Änderung beschreibt. Der Operator $set ändert nur das angegebene Feld.

Aktualisieren Sie das Veröffentlichungsjahr des Buchs "PythonProgramming" von 2022 auf 2024:

db.books.updateOne(
    { title: "PythonProgramming" },
    { $set: { year: 2024 } }
)

MongoDB bestätigt, dass ein Dokument gefunden und geändert wurde:

{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}

Überprüfen Sie das aktualisierte Dokument:

db.books.find({ title: "PythonProgramming" })

Das Ergebnis zeigt jetzt für das Buch "PythonProgramming" den Wert year: 2024.

Entfernen Sie als Nächstes Dokumente aus der Collection.

Um ein einzelnes Dokument zu entfernen, das einer bestimmten Bedingung entspricht, verwenden Sie die Methode deleteOne(). Entfernen Sie nun 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 Abfrageoperatoren für komplexere Bedingungen. $lt steht beispielsweise für "less than", also „kleiner als“.

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

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

Dieser Befehl löscht alle Dokumente, deren Feld year kleiner als 2022 ist. In unserem Fall wird dadurch "DataScienceHandbook" entfernt.

Führen Sie den Befehl find() ein letztes Mal aus, um zu sehen, welche Bücher übrig bleiben:

db.books.find()

In der Collection sollte nur noch das Buch "PythonProgramming" vorhanden sein.

Sie haben jetzt die grundlegenden CRUD-Operationen (Create, Read, Update, Delete) in MongoDB geübt. Geben Sie zum Beenden der mongosh-Shell Folgendes ein:

exit

Zusammenfassung

Herzlichen Glückwunsch zum Abschluss Ihres ersten MongoDB-Labs! Sie haben die grundlegenden Operationen zur Verwaltung von Daten in einer MongoDB-Datenbank erfolgreich gelernt und angewendet.

In diesem Lab haben Sie gelernt:

  • die mongosh-Shell zu starten, um mit einem MongoDB-Server zu interagieren;
  • mit dem Befehl use zu einer Datenbank zu wechseln;
  • einzelne und mehrere Dokumente mit insertOne() und insertMany() einzufügen;
  • Dokumente mit find() abzurufen – mit und ohne Abfragefilter;
  • Dokumente in einer Collection mit countDocuments() zu zählen;
  • ein Dokument mit updateOne() und dem Operator $set zu aktualisieren;
  • Dokumente mit deleteOne() und deleteMany() zu entfernen.

Diese grundlegenden Kenntnisse bilden die Basis für die Entwicklung leistungsfähiger Anwendungen mit MongoDB. Übung ist entscheidend – experimentieren Sie daher gerne weiter mit den Befehlen, die Sie kennengelernt haben.