MongoDB - PHP: Ein Anfängerleitfaden

Hallo da draußen, zukünftige Datenbank-Zauberer! ? Ich freue mich sehr, Ihr Guide auf dieser aufregenden Reise in die Welt von MongoDB und PHP zu sein. Als jemand, der schon seit Jahren Informatik unterrichtet, habe ich unzählige Schüler gesehen, die aufleuchten, wenn sie diese Konzepte begreifen. Also tauchen wir ein und zaubern wir gemeinsam Datenbanken!

MongoDB - PHP

Verbindung herstellen und eine Datenbank auswählen

Bevor wir etwas Komplexes machen können, müssen wir uns mit unserem MongoDB-Server verbinden und eine Datenbank auswählen. Stellen Sie sich das vor wie das Klopfen an der Tür einer riesigen Bibliothek und das Beten, hineingelassen zu werden.

So machen wir das:

<?php
// Erstellen eines neuen MongoDB-Clients
$client = new MongoDB\Client("mongodb://localhost:27017");

// Auswählen einer Datenbank
$database = $client->selectDatabase("myAwesomeDB");

echo "Erfolgreich mit der Datenbank verbunden!";
?>

Lassen Sie uns das auseinandernehmen:

  1. Wir erstellen einen neuen MongoDB-Client und sagen ihm, wo unser MongoDB-Server ist (in diesem Fall auf unserem lokalen Rechner).
  2. Wir wählen eine Datenbank namens "myAwesomeDB" aus. Existiert sie nicht, wird MongoDB sie für uns erstellen. Ist das nicht nett?

Profiltipp: Überprüfen Sie immer, ob Ihre Verbindung erfolgreich war. In einer realen Welt-Situation würden Sie dies in eine try-catch-Anweisung einpacken, um jegliche Verbindungsfehler elegant zu behandeln.

Eine Sammlung erstellen

Nun, da wir in unserer Datenbank sind, brauchen wir einen Ort, um unsere Daten zu speichern. In MongoDB nennen wir diese Orte "Sammlungen". Stellen Sie sich eine Sammlung wie einen Schrank in einem Aktenregal vor.

So erstellen wir eine:

<?php
// Erstellen einer neuen Sammlung
$collection = $database->createCollection("myFirstCollection");

echo "Sammlung erfolgreich erstellt!";
?>

Leicht, oder? Wir haben gerade unserer Datenbank gesagt, eine neue Sammlung namens "myFirstCollection" zu erstellen. Existiert die Sammlung bereits, wird MongoDB einfach die bestehende zurückgeben.

Ein Dokument einfügen

Es ist an der Zeit, etwas in unsere glänzende neue Sammlung zu stecken! In MongoDB speichern wir Daten als "Dokumente". Diese sind sehr ähnlich zu den JSON-Objekten, die Sie vielleicht schon einmal gesehen haben.

Lassen Sie uns ein Dokument über eine süße Katze hinzufügen:

<?php
$document = [
"name" => "Whiskers",
"age" => 3,
"color" => "orange",
"likes" => ["Schlafen", "Fisch", "Laserpointer"]
];

$insertResult = $collection->insertOne($document);

echo "Dokument mit ID eingefügt: " . $insertResult->getInsertedId();
?>

Hier ist, was passiert:

  1. Wir erstellen ein Array, das unser Dokument darstellt. Es hat verschiedene Felder, die unsere Katze beschreiben.
  2. Wir verwenden die insertOne()-Methode, um dieses Dokument in unsere Sammlung einzufügen.
  3. MongoDB gibt jedem Dokument eine eindeutige ID, die wir mit getInsertedId() abrufen können.

Alle Dokumente abrufen

Nun, da wir einige Daten haben, holen wir sie zurück. Wir verwenden die find()-Methode, um alle Dokumente in unserer Sammlung abzurufen:

<?php
$cursor = $collection->find();

foreach ($cursor as $document) {
echo "Name: " . $document["name"] . ", Alter: " . $document["age"] . "\n";
}
?>

Dieser Code wird den Namen und das Alter jeder Katze in unserer Sammlung ausgeben. Die find()-Methode gibt einen Cursor zurück, den wir durchlaufen können, um auf jedes Dokument zuzugreifen.

Ein Dokument aktualisieren

Ups! Wir haben gerade bemerkt, dass Whiskers Geburtstag hat. Lassen wir sein Alter aktualisieren:

<?php
$updateResult = $collection->updateOne(
["name" => "Whiskers"],
['$set' => ["age" => 4]]
);

echo "Gefunden " . $updateResult->getMatchedCount() . " Dokument(e)\n";
echo "Geändert " . $updateResult->getModifiedCount() . " Dokument(e)";
?>

Hier ist, was vor sich geht:

  1. Wir verwenden updateOne(), um ein Dokument zu finden, bei dem der Name "Whiskers" ist.
  2. Wir verwenden den $set-Operator, um das Alter auf 4 zu ändern.
  3. Die Methode gibt Informationen darüber zurück, wie viele Dokumente gefunden und geändert wurden.

Ein Dokument löschen

Manchmal müssen wir Daten entfernen. Angenommen, Whiskers hat ein neues Zuhause gefunden (keine Sorge, er ist dort sehr glücklich!). Wir können sein Dokument如此 löschen:

<?php
$deleteResult = $collection->deleteOne(["name" => "Whiskers"]);

echo "Gelöschte Dokument(e): " . $deleteResult->getDeletedCount();
?>

Dieser Code findet ein Dokument, bei dem der Name "Whiskers" ist, und löscht es. Die getDeletedCount()-Methode tells uns, wie viele Dokumente entfernt wurden.

MongoDB PHP-Methoden

Hier ist eine praktische Tabelle der wichtigsten MongoDB PHP-Methoden, die wir behandelt haben:

Methode Beschreibung
new MongoDB\Client() Erzeugt einen neuen MongoDB-Client
selectDatabase() Wählt eine Datenbank aus
createCollection() Erzeugt eine neue Sammlung
insertOne() Fügt ein einzelnes Dokument ein
find() Ruft Dokumente aus einer Sammlung ab
updateOne() Aktualisiert ein einzelnes Dokument
deleteOne() Löscht ein einzelnes Dokument

Und voilà! Sie haben gerade die Grundlagen der Arbeit mit MongoDB unter Verwendung von PHP gelernt. Erinnern Sie sich daran, dass Übung den Meister macht,also fürchten Sie sich nicht, mit diesen Methoden zu experimentieren. Versuchen Sie, verschiedene Sammlungen zu erstellen, verschiedene Arten von Dokumenten einzufügen und komplexere Abfragen auszuprobieren.

In meinen Jahren des Unterrichtens habe ich festgestellt, dass die Schüler, die sich in den Code stürzen und ihre Hände schmutzig machen, diejenigen sind, die diese Konzepte wirklich beherrschen. Also los, junger Padawan, und möge die Datenbank mit dir sein! ??

Credits: Image by storyset