CRUD-Operationen für MongoDB in PHP

Webanwendungen konzentrieren sich im Allgemeinen auf vier grundlegende Vorgänge, die für das Persistenzsystem oder die Datenbanken ausgeführt werden müssen. Diese Vorgänge werden als Schlüssel angesehen, wenn Sie lernen, für diese Umgebung zu entwickeln. Wir verweisen auf Erstellen, Lesen, Aktualisieren und Löschen auch bekannt als CRUD für sein Akronym in Englisch.

MongoDB ermöglicht es uns dank seines Treibers für PHP , diese vier Operationen auf sehr einfache Weise auszuführen. Da wir jedoch ein nicht relationaler Datenbankmanager sind , können wir nicht in den Fehler geraten, alle Dinge so zu behandeln, als ob wir ein relationales System verwenden würden wie MySQL oder PostgreSQL .

Anforderungen
Um diesem Tutorial folgen zu können, müssen wir eine Version von MongoDB in unserer Testumgebung installiert haben und zusätzlich den entsprechenden Treiber für PHP heruntergeladen und aktiviert haben. Weitere Informationen zur Erfüllung dieser Anforderungen finden Sie im folgenden Tutorial .

MongoDB Optimiert für CRUD

MongoDB wurde mit dem Ziel entwickelt, Transaktionen und Vorgänge sehr effizient zu gestalten, damit Sie Probleme im wirklichen Leben lösen können, ohne an Leistung zu verlieren. Ein CRUD benötigt nicht viel Rechenleistung, aber wenn Tausende von Anfragen an unsere Datenbank in kurzer Zeit eingehen, können wir sehen, wie MongoDB uns dabei hilft, die Leistung aufrechtzuerhalten.

Sammlungen und Dokumente sind sehr leistungsfähige Entitäten, da wir ohne definierte Struktur die gewünschten Daten speichern und gleichzeitig ein sauberes und geordnetes Image beibehalten können. Außerdem können wir auf einfache Abfragen zu Daten zugreifen, für die in relationalen Modellen Zwischenabfragen erforderlich sind viele Tische.

Sammlung erstellen oder auswählen

Die Datenbanken in MongoDB sind als Sammlungen bekannt, daher können wir sie nicht als herkömmliche Datenbanken behandeln , sondern als eine Reihe von Dokumenten, die unter einem Unterscheidungsmerkmal mit einem Namen zusammengefasst sind.

Sammlung erstellen
Um eine Sammlung zu erstellen, benötigen wir keinen speziellen Befehl. Mit demselben Befehl, den wir auswählen, wenn er nicht vorhanden ist, ist MongoDB dafür verantwortlich, einen neuen mit dem von uns angegebenen Namen zu erstellen.

Diese Einfachheit erleichtert unsere Arbeit und reduziert auch die Menge an Code, die wir in unsere Anwendungen einfügen müssen. In der folgenden Abbildung sehen wir einen Beispielcode, mit dem wir eine Sammlung in MongoDB auswählen können:

See also  Fix Ich kann nicht auf meine Windows 10-Dateien oder -Ordner zugreifen

crud-php-momgodb.jpg

Hier sehen wir, wie wir zuerst das Objekt der Mongo () -Klasse erstellt haben, es bei der Installation des entsprechenden Treibers mit einbezogen wird, dann einfach durch Verwendung des Objekts und Schreiben eines Datenbanknamens ausgewählt oder erstellt wird. An dieser Stelle müssen wir vorsichtig sein, da MongoDB keinen Fehler zurückgibt, wenn die Datenbank nicht vorhanden ist. Es wird einfach eine neue erstellt, daher müssen wir die Namen, die wir schreiben, noch einmal überprüfen.

Schließlich können wir eine Sammlung in der Datenbank erstellen, die Adressen heißt, und mit dieser Sammlung haben wir die Basis, auf der wir unsere CRUD- Operationen ausführen können.

Erstellen Sie ein Dokument in einer Sammlung

Um die anderen Operationen des CRUD ausführen zu können, müssen wir zuerst Daten haben. Deshalb lernen wir als Erstes, Dokumente zu erstellen oder Datensätze einzufügen, wie es für unsere Fachsprache am besten geeignet ist.

Dank des MongoDB- Treibers müssen wir einfach ein Array oder Array mit der Struktur und den Daten erstellen, die für unseren neuen Datensatz erforderlich sind, und dann die insert () -Methode der Verbindungsmethode aufrufen. Wir müssen keine definierte Struktur haben oder einem Muster folgen, wenn ein Dokument ein Feld hat und ein anderes nicht, ist der Prozess nicht betroffen.

Sehen wir uns in der folgenden Abbildung den Quellcode an, der den oben genannten Prozess erklärt:

Crud-PHP-Momgodb-2.jpg

Es gibt eine Alternative zur insert () -Methode und zur save () -Methode. Der Unterschied besteht darin, dass save (), wenn Sie einen eindeutigen Bezeichner angeben und dieser vorhanden ist, der vorhandene Datensatz mit den neuen Daten aktualisiert wird.

In der Entwickler-Community empfiehlt es sich, mehr mit save () als mit insert () zu arbeiten, um Code zu generieren, der wiederverwendet werden kann. Die Entscheidung liegt jedoch bei jedem.

Asynchronität und Synchronität

Standardmäßig ist die Methode zum Einfügen in MongoDB asynchron. Dies bedeutet, dass die Datenbank- Engine beim Einfügen oder Aktualisieren der PHP- Registrierung ihre Ausführung ohne Blockierung verfolgt. Das Ergebnis dieses Verhaltens ist, dass die Anwendung schneller ausgeführt wird, auch wenn das Datenbankmodul dies nicht tut.

See also  So setzen Sie das Kennwort eines Routers der Cisco 800-Serie zurück

Da dieses Verhalten nicht immer nützlich sein wird, können wir erzwingen, dass es sich synchron verhält, indem wir den Parameter safe bei der Ausführung der Operation übergeben. Dadurch wartet PHP auf die Antwort von MongoDB, bevor die Ausführung der Operationen fortgesetzt wird. anweisungen Die Struktur des sicheren Parameters lautet wie folgt:

 $ collection-> insert ($ address, array ('safe' => true)); 

Die Primärschlüssel

Standardmäßig und sofern nicht anders angegeben, generiert MongoDB automatisch die Primärschlüssel der Dokumente unter dem Namen _id . Wenn Sie insert () synchron ausführen , wird der Schlüssel erstellt und in das soeben eingefügte Array eingefügt.

Wenn wir also wissen möchten, welcher der eindeutige Bezeichner ist, sollten wir nur diese Eigenschaft des Arrays konsultieren. Wenn wir dem vorherigen Beispiel folgen, wäre es ausreichend, Folgendes zu tun:

 $ id = $ collection ['_ id']; 

Ein Dokument lesen

Wir wenden uns nun der zweiten Operation zu, nämlich dem Lesen der Informationen, die wir in unseren Dokumenten oder Datenbanken haben . Hier können wir Anfragen direkt über den Primärschlüssel oder über eine beliebige andere Kombination von Eigenschaften unseres Dokuments stellen.

Für die Suche verwenden wir einfach die findone () -Methode und übergeben ein Array mit allen Elementen, die wir filtern wollen. Das folgende Bild zeigt eine Abfrage mit Primärschlüssel und eine andere Abfrage mit anderen Eigenschaften des Dokuments:

Crud-PHP-Momgodb-3.jpg

Wenn wir hier feststellen, dass bei der Suche nach einem Primärschlüssel zunächst ein Objekt vom Typ MongoId erstellt wird, werden wir über dessen Wert erstaunt sein. Dies ist der Schlüssel, damit alles ordnungsgemäß funktioniert. Auf der anderen Seite ist es bei der Abfrage von Eigenschaften ausreichend, den Wert in das Array einzufügen, ohne Objekte erstellen zu müssen.

Standardmäßig gibt MongoDB das gesamte Dokument zurück, sobald es eine Übereinstimmung gefunden hat. Wenn wir also nur ein oder wenige Daten davon möchten, müssen wir es in einem zweiten Parameter angeben, der ein Array der gewünschten Eigenschaften oder Felder ist Sehen wir uns im folgenden Code an, wie das geht:

 $ result = $ collection-> findone (Array ('_id' => $ id), Array ('name', 'last name')); 

Wenn Sie den obigen Code platzieren, enthält die Ergebnisvariable ein Array, das nur die Vor- und Nachnamen-Eigenschaften des Dokuments enthält, die den Suchkriterien entsprechen.

See also  Geben Sie Speicherplatz automatisch frei und löschen Sie Windows 10-Dateien

Aktualisieren Sie ein Dokument

Wir wenden uns nun der dritten Operation zu. Hierbei handelt es sich um die Aktualisierung eines Dokuments, das bereits in unserer Sammlung erstellt wurde. Hier müssen wir vorsichtig sein, denn wenn wir nicht richtig vorgehen, können wir das Originaldokument überschreiben, anstatt eine Eigenschaft zu aktualisieren oder hinzuzufügen.

Um Verwirrung zu vermeiden, empfehlen wir die Verwendung von $ set, einem Operator, der MongoDB mitteilt, dass der gesendete Wert bei Vorhandensein des Parameters aktualisiert und bei Nichtvorhandensein erstellt wird. Dies ermöglicht es uns, Fehler in unserer Anwendung zu vermeiden und unsere Anwendung noch besser mit der gewünschten Funktionalität auszustatten. Mal sehen, wie das funktioniert:

Crud-PHP-Momgodb-4.jpg
Wir haben dann erkannt, wie wir in diesem Fall den Wert der Stadteigenschaft ändern können. Wenn die Registrierung jedoch nicht vorhanden ist, wird sie generiert, ohne die bereits vorhandenen zu ändern.

Es gibt etwas Besonderes, das wir in MongoDB tun können und das nicht in einer relationalen Engine erledigt werden kann, und es besteht die Möglichkeit , Arrays in unsere Dokumente einzufügen. Damit können wir Auflistungen von Werten innerhalb einer Eigenschaft hinzufügen, damit wir jedes Mal Dokumente generieren können Komplexer und vollständiger für unsere Anforderungen, ohne die allgemeine Struktur anderer Dokumente zu beeinträchtigen, die in derselben Sammlung vorhanden sind.

Ein Dokument löschen

Dies ist die letzte Operation. Das Löschen ist sehr einfach, fast genauso viel oder mehr als das Hinzufügen oder Aktualisieren. Wir suchen einfach nach einem Kriterium- oder Löschfilter, laden ihn in ein Array und führen die remove () -Methode aus .

Das Einzige, was wir berücksichtigen müssen, ist, dass MongoDB alle Dokumente löscht, die diesem Kriterium entsprechen. Wenn wir also nur eines löschen möchten, müssen wir die Eigenschaft justOne verwenden und in True einfügen . Nachfolgend sehen Sie den Code zum Löschen eines Dokuments:

Crud-PHP-Momgodb-5.jpg

Mit diesem Abschluss dieses Tutorials haben wir auf einfache, aber funktionale Weise gesehen, wie wir ein CRUD in eine nicht relationale Struktur wie MongoDB von PHP einbinden können . Wenn es uns gelingt, dies zu meistern, werden wir leistungsstarke und sehr flexible Anwendungen erstellen, mit denen wir unsere Benutzer beeindrucken können.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *