Der Express.js-Kurs – Modul 6: CRUD-Operationen mit Mongoose | Shivendra Raghuvanshi | Skillshare
Suchen

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Der Express.js-Kurs – Modul 6: CRUD-Operationen mit Mongoose

teacher avatar Shivendra Raghuvanshi, Lead Developer and Online Teacher

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Kurseinführung

      2:47

    • 2.

      Erste Schritte mit MongoDB

      2:17

    • 3.

      MongoDB für Node.js installieren

      5:01

    • 4.

      Node.js mit MongoDB verbinden

      4:14

    • 5.

      Datenschemas mit Mongoose entwerfen

      3:55

    • 6.

      Mongoose-Modelle erstellen und verwenden

      4:46

    • 7.

      Persistente Daten mit Mongoose

      3:42

    • 8.

      Mongoose-Abfragen beherrschen

      4:31

    • 9.

      Mongoose-Abfrage-Vergleichsoperatoren

      5:13

    • 10.

      Logische Operationen in Mongoose-Abfragen

      2:07

    • 11.

      Reguläre Ausdrücke in MongoDB nutzen

      3:24

    • 12.

      Pagination mit Mongoose implementieren

      0:49

    • 13.

      Mongoose-Update-Muster: Abfrage zuerst

      1:47

    • 14.

      Mongoose-Update-Muster: Update-Ansatz

      4:01

    • 15.

      Dokumente zählen mit Mongoose

      6:18

    • 16.

      Dokumente in Mongoose entfernen

      3:07

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

12

Teilnehmer:innen

--

Projekt

Über diesen Kurs

Willkommen in Modul 6: CRUD-Operationen mit Mongoose! In diesem Modul kombinieren wir die Möglichkeiten von Express.js mit MongoDB, einer der beliebtesten NoSQL-Datenbanken. Mit Mongoose, einer leistungsstarken Objektdatenmodellierungs-Bibliothek (ODM), lernen Sie, wie Sie effizient mit MongoDB interagieren können, um CRUD-Vorgänge (Erstellen, Lesen, Aktualisieren, Löschen) durchzuführen.

Du beginnst mit der Verbindung deiner Node.js-Anwendung mit MongoDB und dem Entwurf robuster Schemata, um deine Daten zu strukturieren. Im Laufe der Zeit wirst du tiefer in Mongoose-Abfragen eintauchen, lernen, Operatoren und logische Bedingungen zu verwenden, Pagination zu implementieren und Best Practices für die Aktualisierung und das Löschen von Dokumenten zu erkunden.

Am Ende dieses Moduls hast du ein umfassendes Verständnis von MongoDB und Mongoose, das es dir ermöglicht, dynamische, datengesteuerte Anwendungen mit Leichtigkeit zu erstellen.

Triff deine:n Kursleiter:in

Teacher Profile Image

Shivendra Raghuvanshi

Lead Developer and Online Teacher

Kursleiter:in
Level: All Levels

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Kurseinführung: Willkommen zurück zu Modul sechs des ExpressJCurse, Kreditoperationen mit Dies ist eine Fortsetzung der Express JS-Kursreihe Express JS-Kursreihe Mein Name ist Shawn Aguanhi, Sie sind Ausbilder für diese aufregende Reise in die Welt von Mongo Dew und Mongoose zahlreiche datengesteuerte Anwendungen entwickelt und kann Ihnen sagen, Ich habe zahlreiche datengesteuerte Anwendungen entwickelt und kann Ihnen sagen, dass die Beherrschung von Mongo Dew für moderne Bend-Entwickler eine unverzichtbare Fähigkeit ist , und Mangos machen es unglaublich leistungsfähig und intuitiv und Mangos machen es unglaublich leistungsfähig und In diesem Modul tauchen wir tief in Mongo Hier erfahren Sie, wie Sie Ihre NurJS-App mit MongoDB verbinden und effiziente und flexible Datenschemas mit Mangos entwerfen und effiziente und flexible Datenschemas Und dann das Erstellen, Lesen, Aktualisieren und Löschen von Daten mithilfe von Mangos-Modellen, das Beherrschen erweiterter Abfragen, einschließlich Operatoren, logischen Danach lernen Sie, Funktionen wie Seitennummerierung und das Zählen von Dokumenten zu implementieren Funktionen wie Seitennummerierung und Und schließlich werden Sie die bewährten Methoden für die Verwaltung und Aktualisierung Ihrer Datenbank kennenlernen die bewährten Methoden für die Verwaltung und Aktualisierung Ihrer Datenbank Dieser Kurs ist perfekt für Entwickler, die Mongo DB in ihre No-JS-Anwendungen integrieren möchten Mongo DB in ihre No-JS-Anwendungen integrieren Wenn Sie die früheren Module für Restful ABIs und Express Js abgeschlossen haben, können wir beginnen Es sind keine Vorkenntnisse mit MongoDB erforderlich. Wir werden von den Grundlagen ausgehen und schrittweise komplexeren Themen zuwenden Am Ende dieses Moduls werden Sie über die Fähigkeiten verfügen, um robuste datengesteuerte Anwendungen zu erstellen . Egal, ob Sie ein kleines persönliches Projekt oder eine große Produktions-App erstellen . MongoDB und Mongoose bieten Ihnen die Flexibilität und Effizienz, die Sie für Ihren Erfolg benötigen Schließlich basiert unser Projekt in diesem Modul basiert unser Projekt einer eigenständigen Anwendung namens Dieses Projekt umfasst drei gezielte Übungen, in denen Sie Mongoo-Schemas und -Modelle entwerfen , um Ihre Daten effektiv zu strukturieren, Crowd-Operationen schreiben und ausführen, Crowd-Operationen schreiben und ausführen Daten dynamisch zu verwalten, und fortgeschrittene Techniken wie Abfragefilterung, Seitennummerierung und Aktualisierung von Dokumenten unter Verwendung von Industriestandardmustern implementieren Seitennummerierung und Aktualisierung von Dokumenten unter Verwendung von Industriestandardmustern unter Verwendung Diese Übungen helfen Ihnen dabei, Selbstvertrauen in der Arbeit mit Mongo Deb und Mangos aufzubauen und bereiten Sie auf die Handhabung komplexer Datenoperationen Ich kann es kaum erwarten, dir zu helfen, Mongo Di Bi und Mungo zu meistern. Lass uns eintauchen und loslegen. Wir sehen uns in der ersten Vorlesung. 2. Erste Schritte mit MongoDB: Okay, zurück zu unserer Fairwheels-Anwendung Bisher haben wir die Liste der Unternehmen in einem Array im Speicher gespeichert Unternehmen in einem Array im Speicher So erstellen wir keine realen Anwendungen, denn wenn der Server neu gestartet wird, gehen alle Daten im Speicher verloren Deshalb müssen wir unsere Daten in einer Datenbank speichern. Wie ich Ihnen bereits sagte, haben Sie beim Erstellen von Anwendungen mit Node und Express beim Erstellen von Anwendungen mit Node und Express eine Vielzahl von Optionen in Bezug auf die Datenbank, die Sie verwenden möchten. In diesem Kurs werden wir Mongo DB verwenden, da es sich um Mongo DB verwenden, da ein sehr beliebtes Datenbankverwaltungssystem handelt, das ein sehr beliebtes Datenbankverwaltungssystem handelt, das häufig in Anwendungen verwendet wird , die mit Node und Express erstellt wurden gearbeitet Machen Sie sich also keine Sorgen, wenn wir noch nie mit Mongo DB Sie werden es Stück für Stück oder in den nächsten Abschnitten erfahren Stück oder in den nächsten Abschnitten Nun, nur um die richtigen Erwartungen zu wecken, benötigt Mongo be wirklich seinen eigenen Kurs Sie werden also am Ende dieses Kurses kein Experte für Mongo Be sein, aber Sie werden genug lernen, um die Aufgabe zu erledigen Nun, wenn wir noch nie mit Mongo DB gearbeitet haben, ist Mongo DB im Grunde das, was wir als Dokument oder keine SQL-Datenbank bezeichnen als Dokument oder keine Es unterscheidet sich von herkömmlichen relationalen Datenbanken wie SQL Server oder MySQL usw. In Mongo B haben wir also nicht das Konzept von Tabellen, Schemas, Ansichten, Datensätzen, Spalten. Es ist anders. Im Gegensatz zu relationalen Datenbanken, bei denen Sie Ihre Datenbank im Voraus entworfen haben, gibt es in Mongo DB also bei denen Sie Ihre Datenbank im Voraus entworfen haben, gibt es in Mongo DB kein Schema oder Speichern Sie Ihre JCN-Objekte einfach in Mongo DB. Hier haben wir also eine Reihe von Unternehmen. Wir können einfach alle Objekte in diesem Array und eine Sammlung in Mongo DB speichern , so einfach ist das Das bedeutet auch, dass wir bei der Abfrage unserer Daten JCN-Objekte aus Mongo DB abrufen und diese Objekte einfach an den Client zurückgeben können diese Objekte Es gibt also keine Transformation. Das ist genug Einführung in Mongo DB. Als Nächstes zeige ich Ihnen, wie Sie es auf Ihrem Computer installieren 3. MongoDB für Node.js installieren: In diesem Vortrag werde ich Ihnen zeigen, wie Sie Mongo DV unter Windows installieren Öffnen Sie also Ihren Browser und gehen Sie zu mongodv.com. auf dieser Seite oben links Klicken Sie auf dieser Seite oben links auf Produkt und wählen Sie dann hier die Option Community Dies ist der Mongo DV-Server , den wir auf diesem Computer ausführen. Scrollen Sie nach unten, überprüfen Sie die Version und stellen Sie sicher, dass Windows ausgewählt ist Laden Sie jetzt dieses MSI herunter. Also lass uns das speichern. Ordnung. Und jetzt lass es uns ausführen. Klicken Sie trotzdem auf Installieren. Das gibt uns also einen sehr einfachen Installer. Lass uns weitermachen. Akzeptieren Sie als Nächstes die Lizenzvereinbarung. Führen Sie als Nächstes eine vollständige Installation durch. Nochmals, als nächstes, jetzt auf dieser Seite, gibt es hier ein Kontrollkästchen. Installieren Sie MongoIVKMPAS. Dies sind die Client-Anwendungsdaten, die wir verwenden, um eine Verbindung zu unserem MongoDB-Server herzustellen Wir schauen uns unsere Datenbanken an. Als Nächstes installieren Ordnung, Mongo DB ist installiert Und unser Mongo DB-Kompass ist ebenfalls auf den Markt gekommen, wir werden später darüber sprechen Öffnen wir jetzt den Datei-Explorer und gehen wir zu Program Files und dann zu Mongo DB. Nächster Server. Die Version, die ich jetzt verwende, ist 7.0. Es besteht die Möglichkeit, dass die Version in Zukunft, wenn Sie sich das ansehen, anders sein wird. Wählen Sie also diesen Ordner und dann Ben und schließlich Mongo D. Da ist Mongo Damon, ein Dienst, der im Hintergrund läuft Und das ist im Grunde unser Mongo-DB-Server. Ich möchte, dass Sie diesen Pfad hier auswählen. jetzt in der Suchleiste nach erweiterten Systemeinstellungen. Auf dieser Seite müssen wir hier zu den Umgebungsvariablen gehen. Sie dann aus dieser Liste von Systemvariablen Pfad aus, Wählen Sie dann aus dieser Liste von Systemvariablen Pfad aus, klicken Sie auf Bearbeiten und dann auf Neu. Und hier folgen wir dem Pfad , den wir zuvor kopiert haben. Dies ist der Pfad zu dem Verzeichnis , das unseren Mongo-DV-Server enthält Okay? Wählen Sie jetzt auf dieser Seite auch Okay aus. Jan. Öffnen Sie jetzt PowerShell und führen Mongo D aus. Wenn Sie diese Ausgabe nicht sehen und die Fehlermeldung erhalten , dass Mongo D nicht erkannt wird, müssen Sie Schließen Sie also alle PowerShell-Fenster, die derzeit auf Ihrem Computer geöffnet sind, und öffnen Wenn Sie also Mongo D ausführen, sollten Sie eine Ausgabe wie diese sehen Standardmäßig erhalten Sie eine Fehlermeldung. Also hier, schauen Sie, wir bekommen diese Ausnahme, nicht existierendes Pfaddatenverzeichnis, C, Spalte Backslash-Daten Backslash Standardmäßig speichert Mongo DV Ihre Daten in diesem Ordner. Lassen Sie uns also diesen Ordner erstellen. MKDIR, C, Doppelpunkt, Backslash-Daten, Backslash TV. Okay. Lassen Sie uns Mongo E jetzt noch einmal ausführen Diesmal bekommen wir diese Ausnahme nicht. Und die letzte Nachricht wartet auf Verbindungen auf Port 27017 Das bestätigt also, dass der Mongo DV-Server läuft. Jetzt können wir zu Mongo DV Compass gehen. Also hier ist die Seite , um loszulegen. Das ist eine Verbindung zum Host herstellen. Wir müssen den Mongo-DV-Server angeben , zu dem wir eine Verbindung herstellen möchten Lassen Sie also die Standardwerte so, wie sie sind. Der Hostname ist also lokaler Host und der Port ist 27017. Lassen Sie uns jetzt eine Verbindung herstellen. Wunderschön. Wir sind erfolgreich mit unserem Mongo DV-Server verbunden Also hier haben wir standardmäßig drei Datenbanken: Local, Armin Diese sind für MongaTV da, um seine Arbeit zu erledigen. Wir werden nicht mit diesen Datenbanken arbeiten. 4. Node.js mit MongoDB verbinden: Ordnung. Lassen Sie uns nun ein neues Projekt für diesen Abschnitt erstellen Also werde ich einen neuen Ordner namens Mongo Demo erstellen. Gehen wir in diesen Ordner und führen NVM darin mit einer US-Flagge aus. Wunderschön. Jetzt müssen wir ein Knoten-Paket namens Mongoose installieren Mongoose bietet uns eine einfache EPI, um mit einer Mongo-DB-Datenbank zu arbeiten Okay, Sie können zum Zeitpunkt der Aufnahme dieses Videos sehen, dass ich Mongos Version 7.5 0.0 verwende Wenn Sie also sicherstellen möchten, dass Sie die gleiche Erfahrung machen wie das, was ich Ihnen in diesem Video zeigen werde, empfehle ich Ihnen dringend, genau dieselbe Version zu installieren Okay, lassen Sie uns hier eine neue Datei hinzufügen, Indexpunkt JS. Als erstes müssen wir uns mit Mongo Deb verbinden. Also werden wir dieses Mangos-Modul laden. Und speichere es in den konstanten Pongos. Dieses Objekt hat jetzt eine Methode namens connect. Wir verwenden dies, um eine Verbindung zu Mongo DB herzustellen. Jetzt übergeben wir hier eine Verbindungszeichenfolge, die Mongo DB, Allan 127.0 0.0 0.1 ist Allan 127.0 Spalte 27017. Dies bezieht sich auf den Mongo DV , den wir auf diesem Computer installiert haben Wenn Sie Ihre Anwendung in einer Produktionsumgebung bereitstellen möchten , benötigen Sie eine andere Verbindungszeichenfolge für die Zu Beginn dieses Abschnitts über Express habe ich Ihnen erklärt, wie Sie verschiedene Konfigurationseinstellungen für verschiedene Umgebungen verwalten können verschiedene Konfigurationseinstellungen . In diesem Video haben wir es nicht mit dieser Komplexität zu tun. Also habe ich hier eine Verbindungszeichenfolge fest codiert. Aber in einer echten Anwendung sollte Ihre Verbindungszeichenfolge aus einer Konfigurationsdatei stammen. Also hier ist unser Mongo-DB-Server. Danach fügen wir den Namen unserer Datenbank hinzu. In diesem Fall werde ich eine einfache Playground-Datenbank verwenden. Jetzt haben wir diese Datenbank nicht erstellt, und das spielt keine Rolle. wir zum ersten Mal etwas in diese Datenbank schreiben, erstellt Mongo E B diese Datenbank automatisch für uns Okay, so stellen wir eine Verbindung zu einer Mongo I B-Datenbank her. Nun, diese Verbindungsmethode gibt ein Versprechen zurück. So können wir dann anrufen, wenn dieses Versprechen erfüllt ist. Das heißt, wir haben eine Verbindung zu einer Mongo Eb-Datenbank hergestellt. Hier können wir also ein einfaches Punktprotokoll für die Konsole , das mit Mongo I B verbunden Übrigens verwende ich hier der Einfachheit halber Tensole-Punktprotokoll Wie ich Ihnen im Abschnitt über Express gesagt habe, in einer echten Anwendung besser, ist es in einer echten Anwendung besser, das Debug-Modul zu verwenden, da Sie damit mehr Kontrolle darüber haben, wie viele dieser Debugging-Nachrichten Sie In diesem Abschnitt möchten wir uns jedoch nicht von zu viel Komplexität ablenken lassen. Wir wollen uns nur auf Mongo DB konzentrieren. Dies ist also für ein Szenario, in dem wir erfolgreich eine Verbindung zu einer Mongo IB-Datenbank Aber was ist, wenn etwas schief geht? Wir wollen diesen Fehler auffangen. Hier erhalten wir ein Fehlerobjekt und zeigen es dann auf der Konsole an. Also Konsolen-Punktfehler. Verbindung zu mangiiB schlägt fehl. Und dann fügen wir das Fehlerobjekt hinzu. Wunderschön. Lassen Sie uns nun diese Anwendung ausführen. Also zurück im Terminal, North Moon Index Dot JS. Also können wir sehen, dass wir erfolgreich mit Mongerib verbunden sind. 5. Datenschemas mit Mongoose entwerfen: Also haben wir eine Verbindung zu unserer Mongo DB-Datenbank hergestellt. Jetzt müssen wir als Nächstes ein Schema erstellen. Wir verwenden ein Schema, um die Form von Dokumenten innerhalb einer Sammlung in Mongo DB zu definieren . Was meine ich damit? Nun, lasst uns zu unserem Mongo-DB-Kompass zurückkehren. Ich habe diese Datenbank hier erstellt, Boden. Und in dieser Datenbank haben wir diese Sammlung namens Kurse. Eine Sammlung in Mongo DB ist wie eine Tabelle in einer relationalen In dieser Sammlung Curses-Sammlung haben wir jetzt drei haben wir Ein Dokument in Mongo IB ähnelt einer Zeile in einer relationalen Datenbank In relationalen Datenbanken haben wir also Tabellen In Mongo DB haben wir Sammlungen und Dokumente. Schauen wir uns nun diese Sammlung an. Also hier ist ein Beispiel für das Dokument. Jedes Dokument ist ein Container mit Schlüssel-Wert-Paaren. Hier haben wir also die Underline-ID, was eine eindeutige Kennung ist Für jedes Dokument haben wir Tags , also eine Reihe von Schlüssel-Wert-Paaren Wir haben den Namen, den Autor, die Veröffentlichung, das Datum und die Version. Machen Sie sich jetzt keine Gedanken darüber, wie ich das erstellt habe. Das wirst du in den nächsten Vorlesungen lernen. Jetzt haben wir in Mongoose dieses Konzept namens Schema. Das ist nur spezifisch für Mungos. Es ist kein Teil von Mongo DB. Wir verwenden ein Schema in Mongoose, um die Form von Dokumenten in einer Mongo-DB-Sammlung zu definieren die Form von Dokumenten in einer Mongo-DB-Sammlung Also verwenden wir das, um zu definieren, welche Eigenschaften wir in diesem Dokument haben Lassen Sie mich Ihnen nun zeigen , wie Sie ein Schema erstellen. Also zurück im VS-Code, definieren wir eine Konstante, nennen wir sie Kursschema. Dieses Schema definiert die Form der Kursdokumente in unserer Mongo-DB-Datenbank Also haben wir das auf eine neue Mongoose-Schemaklasse gesetzt. Hier übergeben wir beim Erstellen einer Instanz dieser Klasse ein Objekt Und in diesem Objekt geben wir die Schlüssel-Wert-Paare an, die wir in Kursdokumenten haben sollten. Sie möchten also, dass jeder Kurs eine Namenseigenschaft hat, und der Typ dieser Eigenschaft sollte eine Zeichenfolge sein. Ebenso sollte jeder Kurs einen Autor vom Typ Zeichenfolge haben. Ich möchte, dass unsere Kurse X haben. Und hier möchte ich eine Reihe von Zeichenketten haben. Technisch nicht, wenn das gespeichert wird, wird jedes Objekt in diesem Array ein Schlüssel-Wert-Paar sein. Der Schlüssel wird der Index sein und der Wert wird diese Zeichenfolge sein. Jetzt möchte ich auch, dass jeder Kurs eine Datumseigenschaft vom Typ Datum hat. Jetzt können wir dem auch einen Standardwert geben , sodass wir diesen Wert von Datum zu Objekt ändern können. Dieses Objekt ist eine Typeigenschaft, die wir auf Datum gesetzt haben, und es hat auch eine Eigenschaft namens default, und wir setzen diese jetzt auf date dot. Damit müssen wir bei der Erstellung eines Kursobjekts kein Datum angeben . Datum, das jetzt als Standardwert für diese Eigenschaft verwendet wird. Und schließlich möchte ich, dass jeder Kurs eine Eigenschaft mit dem Namen Ich veröffentlicht hat, es sich um einen booleschen Also hier ist die Liste der Typen wir bei der Erstellung eines Schemas verwenden können Wir haben Zeichenfolge, Zahl, Datum, Puffer, die wir zum Speichern von Binärdaten verwenden, boolesche Werte, Objekt-IDs, die für die Zuweisung eindeutiger Bezeichner und Arrays verwendet werden Zuweisung eindeutiger Bezeichner Als Nächstes zeige ich Ihnen, wie Sie ein Dokument auf der Grundlage des Kursschemas erstellen und speichern 6. Mongoose-Modelle erstellen und verwenden: Also hier ist unser Kursschema, das die Form von Kursdokumenten in einer Mongo De-Datenbank definiert die Form von Kursdokumenten in einer Mongo Jetzt müssen wir das in ein Modell kompilieren. Was ist ein Modell? Nun, zu Beginn des Kurses habe ich über das Konzept von Klassen und Objekten gesprochen. Als Beispiel habe ich dir gesagt, dass wir eine Klasse namens Mensch haben können, wir können ein Objekt wie Shen haben Ein Objekt ist also eine Instanz einer Klasse. Eine Klasse ist nur ein Bauplan, aber ein Objekt ist ein Moment dieses Entwurfs In dieser Anwendung möchten wir nun eine Klasse namens Kurs haben Und dann sollten wir in der Lage sein, Instanzen dieser Klasse zu erstellen , wie einen Knotenkurs. Und dann können wir diesen Knotenkurs in unserer Datenbank speichern. Um also einen klassenähnlichen Kurs zu erstellen, müssen wir dieses Schema in ein Modell kompilieren. Also so machen wir das. Dieses Mungo-Objekt, das wir haben, hat eine Methode namens Model, die zwei Argumente akzeptiert Das erste Argument ist der singuläre Name der Sammlung, für die dieses Modell bestimmt ist. In unserer Mongo EB-Datenbank möchten Sie also eine Sammlung namens Kurse haben, oder? Also hier ist ein Kurs mit einem singulären Namen. Das zweite Argument ist ein Schema, das die Form der Dokumente in dieser Sammlung definiert Das ist also das Kursschema. Damit erhalten wir jetzt eine Kursklasse in unserer Anwendung. Wir können das also auf eine Konstante setzen, die als Kurs bezeichnet wird. Und beachten Sie, dass ich hier die Namenskonvention von Paceal verwende. Die erste Ebene ist natürlich in Großbuchstaben geschrieben, das bedeutet, dass es sich um eine Klasse handelt. Es ist kein Objekt Jetzt können wir ein Objekt erstellen, das auf dieser Klasse basiert. Lassen Sie uns also ein Kursobjekt erstellen. Und hier verwende ich die Schreibweise mit Kamelbuchstaben, weil der erste Buchstabe des ersten Wortes, in diesem Fall natürlich, klein geschrieben ist Also verwenden wir Camel Case, um unsere Objekte zu benennen, und pacelcase , um unsere In diesem Kurs setzen wir das also auf einen neuen Kurs, und in dieser Konstruktorfunktion übergeben wir ein Objekt, wir initialisieren unser Kursobjekt wir initialisieren Lassen Sie uns also die Eigenschaften dieses Kurses festlegen. Ich werde den Express-JS-Kurs als Namen festlegen. Stellen Sie den Autor auf Shiv ein. Stellen Sie den Text auf ein Array aus zwei Zeichenketten ein. Also können wir Express haben und sagen wir wieder rein. Nun, das ist eine interessante Sache mit Mango- oder No-SQL-Datenbanken im Allgemeinen. Sie können sehen, dass ein Dokument in Mongo DB ein komplexes Objekt sein kann Also hier ist diese Tag-Eigenschaft ein Array von Zeichenketten. haben wir so etwas nicht In relationalen Datenbanken Mit anderen Worten, eine Zeile in einer relationalen Datenbank hat einfache Attribute Wenn Sie diese Struktur in einer relationalen Datenbank modellieren möchten , benötigen Sie drei Tabellen, Kurse, Schlagworte und eine Zwischentabelle namens Course-Tags, da es hier eine Viele-zu-Viele-Beziehung zwischen Kursen und Stichwörtern gibt zwischen Kursen Mongo IB oder generell keine SQL-Datenbank, wir haben diese Struktur nicht Wir müssen diese Tabellen nicht definieren. Wir müssen sie nicht schreiben. Wir erstellen einfach unsere Objekte und speichern sie in einer Datenbank. Deshalb nennen wir sie Schemaless . Sie haben kein Schema. Also hier ist unser Steuereigentum. Jetzt ist die andere Immobilie, die wir haben, Datum. Aber zuvor habe ich dafür einen Standardwert definiert. Also werde ich das hier nicht einstellen und die letzte Eigenschaft wird veröffentlicht. Ich werde das auch setzen, wahr. Lassen Sie uns das kurz zusammenfassen. Sobald wir ein Schema haben, müssen wir es in ein Modell kompilieren , das uns eine Klasse gibt Als Nächstes können wir ein Objekt erstellen, das auf dieser Klasse basiert. Und dieses Objekt ist einem Dokument in einer Mongo-DB-Datenbank zugeordnet Als Nächstes zeige ich Ihnen, wie Sie dieses Dokument in unserer Datenbank speichern 7. Persistente Daten mit Mongoose: In Ordnung. Also hier ist unser Kursobjekt , das einem Kursdokument in Mongo DV Speichern wir das nun in unserer Datenbank. Dieses Kursobjekt hat also eine Methode namens save. Jetzt haben wir es hier mit einer asynchronen Operation zu tun , weil es einige Zeit dauern wird , diesen Kurs in der Datenbank zu speichern , weil wir auf das Dateisystem zugreifen werden Deshalb haben wir es mit einer asynchronen Operation zu tun. Das Ergebnis dieser Operation wird in Zukunft vorliegen. Diese Methode gibt also ein Versprechen zurück. Wir können es fliegen und das Ergebnis erzielen. Dieses Ergebnis ist das eigentliche Kursobjekt , das in der Datenbank gespeichert ist Wenn wir diesen Kurs also in Mongo DB speichern, weist Mongo DB diesem Kursobjekt mit diesem Kursdokument eine eindeutige Kennung zu Damit können wir nun die IRE sehen, die von Mongo DB zugewiesen wurde Loggen wir es also im Konsolenergebnis ein. Wie ich Ihnen bereits gesagt habe, sollte sich Ihr Code immer in einer asynchronen Funktion befinden, wenn ich ein Gewicht verwende sollte sich Ihr Code immer in einer asynchronen Funktion befinden, wenn ich ein Also werde ich hier eine Funktion definieren , st, Kurs erstellen Wir setzen das auf eine Synchronisierungsfehlerfunktion wie diese und fügen den ganzen Code in diese Funktion ein. Also erstellen wir ein Kursobjekt, speichern es und zeigen das Ergebnis dann auf der Konsole an. Und schließlich nennen wir hier Create Curse. Speichern. Jetzt, zurück im Terminal, werde ich in diesem Abschnitt diese Anwendung mit Node statt mit Norm ausführen , weil ohne jemanden jedes Mal, wenn ich eine einfache Änderung am Code vornehme, dazu führt, dass ein neues Dokument in unserer Mongo-DB-Datenbank erstellt wird ein neues Dokument in unserer Mongo-DB-Datenbank Also Node-Index-Punkt js. Wunderschön. Unser Kurs wurde in der Datenbank gespeichert, und hier ist das Dokument, das tatsächlich in unserer Mongo-DB gespeichert ist Schauen Sie, Mongo DB hat dieser Eigenschaft eine Unterstreichungs-ID zugewiesen, und sie ist auf diese eindeutige Kennung gesetzt Gehen wir nun zurück zu Mongo DB Compass. Also lass uns hier aktualisieren. Hier ist unsere Spielplatz-Datenbank. Wir haben diese Kurssammlung und in dieser Sammlung haben wir ein Dokument, richtig? Das ist also das Schöne an Mongo DB- oder Nose EQUL-Datenbanken. Im Gegensatz zu relationalen Datenbanken mussten wir keine Tabelle erstellen Wir mussten für diese Tabelle kein Skript erstellen. Einfach ein Dokument erstellt und in unseren Mongo-DB-Daten gespeichert Also zurück im Board, lassen Sie uns diese Werte ändern und ein weiteres Dokument erstellen Denn in der nächsten Vorlesung werde ich Ihnen zeigen, wie man Dokumente abfragt. Lassen Sie uns das also auf den ReactJS-Kurs ändern und zwei Tags hinzufügen React Dot JS und Frontend Speichern. Zurück im Terminal beenden wir diesen Vorgang und führen diese Anwendung erneut aus. Hier ist unser zweites Dokument. Und wenn Sie in MongoivKmpas nachschauen, lassen Sie uns das Ergebnis aktualisieren Schauen Sie, wir haben zwei Dokumente in unserer Kurssammlung. Wunderschön. Als Nächstes zeige ich Ihnen, wie Sie Dokumente abfragen. 8. Mongoose-Abfragen beherrschen: Ordnung, lassen Sie mich Ihnen zeigen, wie Sie Dokumente aus einer Mong Also hier werde ich eine weitere Funktion für Pas G-Kurse erstellen eine weitere Funktion für Pas G-Kurse Wir haben das zur Async-Fehlerfunktion gesagt. Und dann werde ich den Aufruf zum Erstellen eines Kurses durch G-Kurse ersetzen Erstellen eines Kurses durch G-Kurse Lassen Sie uns nun diese Funktion implementieren. Diese Kursklasse , die wir zuvor definiert haben, enthält also eine Reihe von Methoden zum Abfragen von Dokumenten Wir müssen herausfinden, um eine Liste von Dokumenten zu bekommen. Wir haben es per Ausweis gefunden, was ziemlich selbsterklärend ist Und wir haben einen gefunden, der ein einzelnes Dokument zurückgibt. Jetzt haben wir hier ein paar weitere gute Methoden, aber mach dir darüber keine Sorgen. Wir verwenden sie, um ein Dokument zu finden und es dann zu entfernen oder zu aktualisieren. Wir werden sie uns später in diesem Abschnitt ansehen. Schauen wir uns also die gute Methode an. Wie Sie sehen können, gibt diese Methode eine Dokumentabfrageoption zurück. Jetzt ist dieses Dokumentabfrageobjekt so etwas wie ein Versprechen. Es hat also eine Than-Methode, sodass wir sie vermeiden und das Ergebnis erhalten können Und damit haben wir alle Kurse in unserer Datenbank. Lassen Sie uns es also auf der Konsole anzeigen. Jetzt zurück im Terminalknotenindex zu Js. Also schau, wir bekommen ein Array mit zwei Objekten. Hier ist unser erster Kurs, das ist der Express-TS-Kurs, und hier ist der zweite Kurs. Das ist der Kurs „React to GS“. Wunderschön. Jetzt können wir hier auch einen Filter passieren. Als erstes Argument an die Fine-Methode übergeben wir also ein Objekt, und in diesem Objekt fügen wir oder mehrere Schlüsselwertpaare für die Filterung hinzu. Nehmen wir also an, wir wollen nur die Kurse von Shevn bekommen. Also setzen wir den Autor auf Shevn, wir können eine andere Eigenschaft übergeben. Ein weiterer Filter wird veröffentlicht über. Mit diesem Filter bekommen wir also nur die veröffentlichten Kurse pro genähtem Stück, und so kommen wir zu den Dokumenten Aber hier können wir unsere Dokumente auch sortieren. Wir können ein Limit für die Anzahl der zurückgesandten Dokumente festlegen . Wir können auch bestimmte Eigenschaften im Dokument auswählen. Nehmen wir an, unser Kurs dokumentiert dort 50 Eigenschaften Vielleicht möchten wir nicht all diese Eigenschaften an den Client zurückgeben , vielleicht möchten Sie nur ihren Namen zurückgeben. Lassen Sie mich Ihnen zeigen, wie Sie eine komplexere Abfrage erstellen können. Sie haben bereits gesehen, dass diese gute Methode ein Dokumentabfrageobjekt zurückgibt. Schau, Dokumentenabfrage, richtig? Also hier können wir diese Abfrage anpassen . Wir können ein Limit anwenden. Nehmen wir an, wir können die Dokumente sortieren. Hier übergeben wir ein Objekt. Und in diesem Objekt fügen wir ein oder mehrere Schlüsselwertpaare für die Sortierung hinzu. Nehmen wir an, wir möchten diese Dokumente nach ihrem Namen sortieren . Wir haben den Namen auf eins gesetzt. Eins gibt eine aufsteigende Reihenfolge an. Wir möchten diese Dokumente in absteigender Reihenfolge sortieren, Sie verwenden minus eins Wie ich Ihnen bereits sagte, können Sie hier mehrere Schlüssel-Wert-Paare haben Wir haben auch eine andere Methode zur Auswahl, mit der wir die Eigenschaften auswählen können , die zurückgegeben werden sollen. Nehmen wir zum Beispiel an, wir möchten nur den Namen und die steuerlichen Eigenschaften jedes Kursdokuments abrufen . Also setzen wir den Namen auf eins und den Text auch auf eins. Lassen Sie uns nun diese Anwendung wieder im Terminalknoten ausführen , Index Js. Also schau, jetzt haben die Kursobjekte, die wir bekommen, nur drei Eigenschaften. Taggen Sie den Namen, wir haben diese beiden Eigenschaften ausgewählt, aber wir erhalten auch die zugrunde liegende ID-Eigenschaft , die standardmäßig von Mongo DB zugewiesen wird Außerdem sind diese Dokumente in absteigender Reihenfolge nach ihrem Namen sortiert Der React-GS-Kurs steht also an erster Stelle, obwohl wir diesen Kurs später erstellt haben So erstellen wir also Abfragen. In der nächsten Vorlesung werde ich Ihnen zeigen, wie Sie eine komplexere Filterung durchführen können. 9. Mongoose-Abfrage-Vergleichsoperatoren: In der letzten Vorlesung haben Sie also gelernt, wie Sie Dokumente mit der Fine-Methode filtern können Oder in den nächsten Vorlesungen werde ich Ihnen zeigen, wie Sie komplexere Abfragen erstellen können. Wenn Sie noch nie mit Mongadb gearbeitet haben, werden Sie feststellen, dass die Syntax, die wir zum Erstellen von Abfragen verwenden, etwas ungewohnt oder seltsam ist, und ich verstehe das vollkommen, weil ich schon einmal werden Sie feststellen, dass die Syntax, die wir zum Erstellen von Abfragen verwenden, etwas ungewohnt oder seltsam ist, und ich verstehe das vollkommen , weil ich schon Aber in diesem Vortrag werde ich Ihnen eine Technik zeigen, die Sie sich an diese Syntax erinnern können, und dann werden Sie feststellen, dass sie eigentlich sehr einfach ist Das Thema dieser Vorlesung sind also Vergleichsoperatoren. In Mongo DV haben wir also eine Reihe von Operatoren zum Vergleichen von Da Mongoose auf dem Mongo-DV-Treiber basiert, diesen Standardoperatoren , die Mongo Dee versteht, sind sie auch in Mongoose verfügbar. Also hier sind die Vergleichsoperatoren , die wir in Mongo DB haben. Wir haben EQ, was kurz für gleich ist, wir haben NE, was kurz für ungleich ist. Wir haben GT, was die Abkürzung für größer als GTE ist, was die Abkürzung für größer als oder gleich In ähnlicher Weise haben wir LT, was die Abkürzung für weniger als ist. Wir haben LTE, was die Abkürzung für weniger als oder gleich ist. Wir haben auch N und NIN, was die Abkürzung für nicht N ist. Stellen wir uns nun für die Zwecke dieser Vorlesung vor, für die Zwecke dieser Vorlesung vor, dass unsere Kurse eine Preiseigenschaft haben. Ich werde diese gute Methode kommentieren . Nehmen wir an, wir wollen alle Kurse bekommen, die 10$ kosten. Wie machen wir das? Also rufen wir fine an, übergeben ein Objekt zum Filtern, setzen den Preis auf zehn, sodass nur die Kurse zurückgegeben werden, die 10$ kosten. Was ist nun, wenn wir Kurse wollen , die mehr als 10$ kosten? Wie können wir das mit JCN-Objekten in JavaScript ausdrücken? Nun, Sie wissen, dass ein Objekt in JavaScript im Grunde eine Sammlung von Schlüssel-Wert-Paaren ist Also hier ist unser Schlüssel der Preis und unser Wert ist zehn. Mit einem einfachen Wert können wir kein Konzept von mehr als oder mehr als zehn ausdrücken . Um das Konzept von mehr als zehn auszudrücken, müssen wir also ein Objekt übergeben. Hier ist dieses Objekt wieder ein Container für Schlüssel-Wert-Paare. Jetzt kann ich hier einen dieser Operatoren als Schlüssel verwenden. Lassen Sie mich hier den Operator „ größer als“ verwenden. Do sine gibt an , dass es sich um einen Operator handelt. GT, der größer als ist, und wir setzen diesen Wert auf zehn. Also sieh, was ich getan habe. Ich habe einen einfachen Wert wie Zehn durch ein Objekt ersetzt , um ein Konzept auszudrücken, das Konzept von mehr als zehn. Jetzt können wir diesen Operator auf größer oder gleich ändern . Wenn Sie Kurse wünschen, bei denen das Ergebnis ebenfalls 10 USD kostet. Lassen Sie uns das auf die nächste Stufe bringen. Was ist, wenn wir die Kurse nehmen wollen, die 10-20 $ kosten? Auch hier können wir einen anderen Operator verwenden, also weniger als oder gleich 20$ So können wir diese Vergleichsoperatoren verwenden , um Dokumente abzufragen Schauen wir uns nun ein anderes Beispiel an. Stellen wir uns vor, wir möchten Kurse bekommen, die 10 oder 15$ oder 20$ kosten Also werde ich das loben. Fangen wir bei Null an. Also rufen wir find auf, übergeben ein Objekt zum Filtern und legen den Preis erneut fest. Wenn ich zehn verwende, kann ich Gleichheit nur mit zehn vergleichen. Das wollen wir nicht. Wir wollen Kurse, die entweder 10$ oder 15$ oder 20$ kosten Also ersetzen wir diesen Wert durch ein Objekt, um unsere Anfrage auszudrücken Hier verwenden wir einen Operator, der in Dollar ausgedrückt wird. Nun, was würden wir für den Wert verwenden? Hier möchten wir eine Anfrage stellen, bei der Kurse entweder 10$, 15$ oder 20$ kosten Wir haben es hier also mit drei Werten zu tun. Welches Javascript-Konstrukt verwenden wir , um mehrere Werte auszudrücken? Wir verwenden ein Array, oder? Also zehn, 15, 20. Schau, was ich bisher gemacht habe. Ich habe nichts auswendig gelernt. Ich versuche einfach logisch zu denken, wie wir Script-Konstrukte verwenden können ein Konzept auszudrücken , um eine Anfrage auszudrücken Das sind also die Vergleichsoperatoren. Und in der nächsten Vorlesung werden wir uns die logischen Operatoren ansehen. 10. Logische Operationen in Mongoose-Abfragen: In dieser Vorlesung werde ich Ihnen zeigen, wie Sie die logischen Abfrageoperatoren verwenden Also hier ist unsere ursprüngliche Abfrage. Wir bekommen alle Kurse , die diesen Kriterien entsprechen. Sie wurden von Shevin verfasst und veröffentlicht. Was ist, wenn wir die von Shevin veröffentlichten Posen oder die veröffentlichten Kurse Wir können also Kurse anbieten , die zwar veröffentlicht werden, aber nicht von Chevan verfasst Da brauchen wir den Operator. Also hier sind die logischen Operatoren, die wir haben. Wir haben R und M. Sehen Sie, wie wir diese Operatoren verwenden können. Also werde ich das loben. Stattdessen werden wir die Fine-Methode ohne Filter aufrufen die Fine-Methode ohne Filter Danach rufen wir die R-Methode auf. Nun, hier ist eine Frage an dich. Welches Java-Strip-Konstrukt verwenden wir, um mehrere Werte zu speichern? Wir verwenden ein Array, oder? Hier müssen wir also ein Array übergeben, und in diesem Array fügen wir zwei Objekte hinzu. Jedes Objekt ist ein Filter, genau wie das Filterobjekt , das wir an die Fine-Methode übergeben. In diesem ersten Filterobjekt fügen wir also den Autor hinzu. Wir setzen das in einer Sekunde auf Shi, wir fügen das als veröffentlicht und setzen das auf „Wahr“. Damit erhalten wir Kurse, die von Shevin verfasst wurden, oder Kurse, die Der logische Operator N ist genau derselbe. Aber anstatt die Methode zu verwenden, verwenden wir die Methode. Und damit übergeben wir eine Reihe von Filterobjekten. Das ist nun technisch gesehen vergleichbar mit Übergabe eines Filterobjekts an die Find-Methode. Aber manchmal finden Sie bei komplexeren Abfragen eine Möglichkeit, die N-Methode zu verwenden. Als Nächstes werden wir uns reguläre Ausdrücke ansehen. 11. Reguläre Ausdrücke in MongoDB nutzen: Also zurück zu unserer ursprünglichen Abfrage. In diesem Beispiel erhalten wir Kurse, deren Autor genau die Zeichenfolge ist Wenn wir hier einen Kurs mit Autoren wie Shevin oder Shevin a Guanhi haben , werden diese Kurse Wenn Sie also mehr Kontrolle über das Filtern von Zeichenketten haben möchten , müssen Sie einen regulären Ausdruck verwenden Lassen Sie mich Ihnen zeigen, wie das funktioniert. Also werde ich das kommentieren. Nehmen wir an, wir möchten Kurse bekommen , deren Autor mit Chewn beginnt . So schreiben wir diese Abfrage Suchen Sie also als Objekt, legen Sie den Autor fest. Anstatt hier eine Zeichenfolge zu übergeben, übergeben wir jetzt Ihren regulären Ausdruck. Also fügen wir einen Schrägstrich hinzu, wir fügen ein Muster hinzu, das wir in einer Sekunde ändern werden, und einen weiteren Schrägstrich Das ist also eine Syntax zur Darstellung eines regulären Ausdrucks In regulären Ausdrücken können wir dieses Karatzeichen jetzt verwenden , um eine Zeichenfolge darzustellen, die mit etwas beginnt. Hier kann ich Shen hinzufügen. Dieser reguläre Ausdruck steht also für eine Zeichenfolge , die mit Shen beginnt Solange der andere mit Shen beginnt, ist es egal, was wir haben Diese Kurse werden eingestellt. Was ist nun, wenn wir nach Kursen suchen wollen , deren Autor mit einer bestimmten Zeichenfolge endet? Nehmen wir an, sie endet mit Ragan G. So schreiben wir diese Abfrage Gut, als Objekt setzen wir den Autor auf einen regulären Ausdruck Schrägstrichmuster Und das Muster, das wir hier verwenden, ist Rugen hi Dasg. Ein Puppensinus in regulären Ausdrücken gibt das Ende einer Zeichenfolge an Hier suchen wir also nach Kursen , deren Autor mit abonci endet Bei dieser Abfrage wird nun zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie die Groß- und Kleinschreibung nicht berücksichtigen möchten, fügen Sie am Ende ein I hinzu Und zum Schluss schauen wir uns das letzte Beispiel an. Was ist, wenn Sie nach Posen suchen möchten , deren Autor das Wort Schiff enthält? Also kann Shift am Anfang sein. Es kann in der Mitte sein, oder es kann am Ende sein. Lassen Sie mich Ihnen zeigen , wie Sie diese Abfrage schreiben. Also nennen wir Fine als Objekt, Autor, regulärer Ausdruck. Hier ist unser Muster. Punkt, Stern, Shift-Punkt, Stern. Stern in einem regulären Ausdruck bedeutet also , dass wir null oder mehr Zeichen haben können. Es ist uns egal, was diese Zeichen sind. Bei diesem Muster mit diesem regulären Ausdruck können wir also null oder mehr Zeichen vor oder nach der Schicht haben . Und noch einmal, wenn Sie möchten , dass Groß- und Kleinschreibung nicht berücksichtigt wird, setzen wir ein I ans Ende Natürlich können Sie komplexere reguläre Ausdrücke verwenden. Die Erklärung regulärer JavaScript-Ausdrücke würde den Rahmen dieses Kurses sprengen. Wenn Sie also mehr über reguläre Ausdrücke erfahren möchten, lesen Sie einfach ein Tutorial über reguläre JavaScript-Ausdrücke. 12. Pagination mit Mongoose implementieren: In dieser Abfrage filtern Sie also unsere Kurse und wählen nur deren Namen und nur deren Namen und Wenn Sie also diese Anwendung ausführen, erhalten wir eine Reihe von zwei Kursen. Und jeder Kurs hat diese drei Eigenschaften. Manchmal wollen wir nur die Anzahl der Dokumente anstelle der tatsächlichen Dokumente abrufen . Wenn das also der Fall ist, müssen wir die Select-Methode nicht verwenden. Stattdessen rufen wir count auf, und das gibt die Anzahl der Dokumente zurück , die diesen Kriterien entsprechen. Also zurück im Terminal, lassen Sie uns diese Anwendung erneut ausführen. Schau, wir haben zwei Dokumente , die unserem Filter entsprechen. 13. Mongoose-Update-Muster: Abfrage zuerst: Sie haben also früher von dieser Limit-Methode erfahren. Eine Methode, die mit der Limit-Methode einhergeht , ist eine Skip-Methode. Und wir verwenden dies, um die Paginierung zu implementieren. Lassen Sie mich Ihnen zeigen, wie das funktioniert. Lassen Sie mich also eine Konstante namens Seitenzahl definieren. Das kann eins, zwei, drei sein, was auch immer. Also lass uns das auf zwei setzen. Wir haben eine weitere Konstante namens Seitengröße. Ja. Also habe ich diese Zahlen fest codiert. Das ist nur der Einfachheit halber. In einer realen Anwendung übergeben wir diese Werte jedoch als Abfragezeichenfolgenparameter an RESTful-APIs Möglicherweise haben Sie also eine API, um die Liste der Kurse abzurufen. Sein Endpunkt kann Abfragezeichenfolgenparameter wie diesen abrufen. Also Seitennummer, wir setzen das auf zwei und Seitengröße auf zehn. So funktioniert das in der realen Welt. Im Moment müssen wir uns darüber keine Sorgen machen . Also lass uns das löschen. Um die Paginierung zu implementieren, müssen wir alle Dokumente auf der vorherigen Seite überspringen Also hier ist die Formel. Seitenzahl minus das Einmalige der Seitengröße. Also hier gehe ich davon aus, dass die Seitenzahl bei eins beginnt. Genauer gesagt, das ist die Seitenzahl, nicht der Seitenindex. Okay? Und dann ändern wir das Limit auf Seitengröße. Damit können wir die Dokumente auf einer bestimmten Seite abrufen. 14. Mongoose-Update-Muster: Update-Ansatz: Sie haben also viel über das Queeren von Dokumenten gelernt. In dieser Vorlesung werde ich Ihnen zeigen, wie Sie Dokumente in der Mongo DB-Datenbank aktualisieren Lassen Sie uns also eine neue Funktion erstellen. Also letztes Update, Kurs. Wir haben das auf eine Fehlerfunktion gesetzt und es sollte eine ID benötigen. Also als ID geht das zugeführte R zu einem Koordinatenblock. Das ist die ID des Kurses. Wir werden ihn aktualisieren und dann hier werden wir ihn durch den Aktualisierungskurs ersetzen . Jetzt gibt es grundsätzlich zwei Möglichkeiten, ein Dokument in MongaIV zu aktualisieren Einen Ansatz nenne ich, wo du zuerst bist. Sie suchen also mit Fine by ID nach einem Dokument, dann ändern wir seine Eigenschaften. Und dann rufen Sie schließlich die Save-Methode auf. Dies ist wahrscheinlich der Ansatz , den Sie in anderen Frameworks verwendet haben. Der andere Ansatz ist das, was ich Update First nenne. Anstatt also zuerst ein Dokument abzurufen, gehen wir in die Datenbank und aktualisieren es direkt Jetzt können wir oft auch das aktualisierte Dokument abrufen. In diesem Vortrag werde ich Ihnen also den ersten Ansatz zeigen, und den anderen Ansatz werden wir uns im nächsten Video ansehen. Lassen Sie uns also all diese Kommentare löschen. Hier wollen wir den Kurs mit einer bestimmten ID bekommen. Also natürlich Punkt Fine By ID, wir geben diese ID hier weiter. Also, das gibt ein Versprechen zurück, also nehmen wir es weg, holen uns das Ergebnis und speichern es hier. Nun, es besteht die Möglichkeit, dass es keinen Kurs mit einer bestimmten ID gibt, also müssen wir das überprüfen. Wenn wir keinen Kurs haben, werden wir sofort zurückkehren. Andernfalls werden wir die Eigenschaften dieses Kurses aktualisieren. So können wir den Kurs „ Punkt ist veröffentlicht“ auf „ true“ setzen und auch „Autor für einen anderen Autor“. Es gibt einen anderen Ansatz. Anstatt mehrere Eigenschaften festzulegen, rufen wir die Set-Methode auf. Also natürlich Punktset. Hier übergeben wir ein Objekt mit Schlüssel-Wert-Paaren, die aktualisiert werden sollen. So können wir is published auf true und author auf einen anderen Autor setzen . Im Grunde sind diese beiden Ansätze also identisch. Welchen Sie wählen, ist ausschließlich Ihre persönliche Präferenz. In dieser Demo werde ich nun den ersten Ansatz verwenden, und schließlich rufen wir die Save-Methode auf. Dies ist dieselbe Methode, die wir zuvor verwendet haben . Erstellen Sie einen neuen Kurs. Es gibt also ein Versprechen zurück. Wir können es abwarten, das Ergebnis abrufen und es auf der Konsole anzeigen Also das Ergebnis des Punktprotokolls auf der Konsole. Jetzt gehe ich zurück zu Encompass und hole mir eine gültige Kurs-ID Ordnung. Also hier in unserer Kurssammlung werde ich mir diese Kurs-ID schnappen und sie hier einfügen. Jetzt, zurück im Terminal, lassen Sie uns dieses Programm ausführen. Hier ist der Kurs , den wir aktualisiert haben. Schau, der Autor ist auf einen anderen Autor eingestellt. In der nächsten Vorlesung werde ich Ihnen zeigen , wie Sie ein Dokument direkt in der Datenbank aktualisieren ein Dokument direkt in können, ohne es zuerst abzurufen 15. Dokumente zählen mit Mongoose: Ich habe in der letzten Vorlesung etwas über den Query First-Ansatz zur Aktualisierung eines Dokuments gelernt zur Aktualisierung eines Dieser Ansatz ist nützlich, wenn Sie eine Eingabe vom Client erhalten und sicherstellen möchten , dass es sich bei der Aktualisierung um einen gültigen Vorgang handelt. Hier haben wir zum Beispiel eine Geschäftsregel. Wenn der Kurs also veröffentlicht wird, sollten wir seinen Autor vielleicht nicht ändern dürfen. Um diese Geschäftsregel zu implementieren, müssen wir zuerst den Kurs abrufen und dann eine Logik wie diese schreiben. Wenn der Kurs also veröffentlicht wird, wollen wir zurückkehren. Wir möchten diesen Kurs nicht aktualisieren. In diesem Fall verwenden wir also den Query-First-Ansatz. Aber manchmal wissen Sie, was Sie tun, Sie erhalten keine Eingaben vom Kunden. Sie möchten nur ein Dokument oder vielleicht mehrere Dokumente direkt in der Datenbank aktualisieren . Und das werde ich Ihnen in diesem Vortrag zeigen. Anstatt also die Fine-by-ID-Methode zu verwenden, verwenden wir die Methode Update Many oder Update One. Das erste Argument hier ist nun eine Abfrage oder ein Filterobjekt. Also können wir den Kurs mit dieser ID bekommen, oder wir können etwas generischeres übergeben. Wir können alle Kurse abrufen , die nicht veröffentlicht sind. Damit können wir mehrere Dokumente auf einmal aktualisieren. In dieser Demo möchten wir nun einen Kurs mit einer bestimmten ID aktualisieren. Ich werde dies ändern, um die ID zu unterstreichen, und das auf das ID-Argument setzen Jetzt ist das zweite Argument der Update-One-Methode das Update-Objekt Jetzt müssen wir hier einen oder mehrere der Mongo DB-Aktualisierungsoperatoren verwenden mehrere der Mongo DB-Aktualisierungsoperatoren Wenn Sie also nach Mongo DB-Aktualisierungsoperatoren suchen, finden Sie auf dieser Seite die Liste aller unterstützten Wir haben also das aktuelle Datum, um den Wert eines Feldes auf das aktuelle Datum zu Wir haben Tinte oder Inkrement. Das ist sehr mächtig Damit können wir den Wert eines Feldes um den angegebenen Betrag erhöhen eines Feldes um den angegebenen Betrag Stellen Sie sich vor, Sie möchten eine Anwendung wie Facebook erstellen. Wenn der Benutzer also einen Beitrag mag, möchten Sie die Anzahl der Likes erhöhen Mit diesem Operator können Sie die Anzahl der s direkt in der Datenbank erhöhen die Anzahl der s direkt in der Sie müssen den Beitrag nicht zuerst wiederholen und dann die Anzahl der s erhöhen. Sie können auch einen negativen Wert übergeben, um den Wert eines Felds zu verringern Wir haben Männer, was nützlich ist, wenn Sie ein Feld aktualisieren möchten , wenn der angegebene Wert kleiner als der vorhandene Feldwert ist Wir haben einen anderen ähnlichen Operator, und mit diesem können wir ein Feld aktualisieren, wenn der angegebene Wert größer als der vorhandene Feldwert ist . Wir haben L oder multipliziere, was dem Inkrement ziemlich ähnlich ist Aber damit können wir den Wert eines Feldes mit dem angegebenen Betrag multiplizieren Wir haben festgelegt, was ich Ihnen in dieser Vorlesung zeigen werde , und damit können wir den Wert eines Feldes festlegen. Und ähnlich wie hier haben wir festgelegt, was wir verwenden können, um das angegebene Feld aus einem Dokument zu entfernen . Also zurück in unserem Aktualisierungsobjekt werde ich den Set-Operator verwenden. Wir setzen das auf ein Objekt und fügen in diesem Objekt ein oder mehrere Schlüsselwertpaare hinzu. Nehmen wir also an, wir möchten die Eigenschaft auor aktualisieren, sie auf Shevin setzen und wir wollen is published auf Falls setzen Mit dieser Update-One-Methode können wir also ein Dokument direkt in der Datenbank aktualisieren , ohne es zuerst abrufen zu müssen Was wir hier erhalten, ist das Ergebnis des Aktualisierungsvorgangs, kein Kursobjekt Also lassen Sie uns das in Ergebnis umbenennen. Jetzt müssen wir nicht mehr nach der Existenz eines Kurses suchen. Wir müssen die Eigenschaften hier nicht aktualisieren und wir müssen sie nicht explizit speichern . Okay, sehr einfach. Gehen wir also zurück zum Terminal und führen unsere Anwendung erneut aus. Sie können also hier im Ergebnisobjekt sehen, dass wir ein Dokument geändert haben. Und hier ist dieses Dokument in unserer Mongo DV-Datenbank. Der Autor ist also auf Shiv in gesetzt und was veröffentlicht ist, ist auf falsch gesetzt. Wunderschön Jetzt möchten Sie manchmal das Dokument abrufen , das aktualisiert wurde. Wenn das der Fall ist, anstelle der Methode Update One müssen Sie anstelle der Methode Update One Fine by ID und Update verwenden. Hier müssen wir also als erstes Argument eine ID anstelle eines Abfrageobjekts übergeben. Und in ähnlicher Weise übergeben wir als zweites Argument unser Update-Objekt. Was wir hier bekommen, ist ein Kursobjekt. Also werde ich den Autor in Shevin ändern und es wird auf True veröffentlicht Lassen Sie uns dieses Programm ausführen und sehen, was passiert. Also Node, Index oder Js. In Ordnung, hier ist das Kursdokument, das wir aktualisiert haben. Aber sieh mal, der Autor ist immer noch falsch und die Veröffentlichung ist falsch Was wir hier bekommen, ist das Originaldokument, das das Dokument vor dem Aktualisierungsvorgang ist Dokument vor dem Aktualisierungsvorgang Wenn Sie das aktualisierte Dokument erhalten möchten, müssen Sie eine Option angeben. Wir müssen ein weiteres Argument an diese Methode übergeben. Hier übergebe ich ein Objekt und setze die neue Eigenschaft auf true. Und damit bekommen wir das aktualisierte Dokument, speichern. Jetzt, zurück im Terminal, lassen Sie uns die Anwendung erneut ausführen. Okay, sieh mal, es ist wahr, dass der Autor etwas herausgibt und veröffentlicht wurde. Mit dieser Methode senden wir also einen Befehl an Mongo Dev, um das Dokument zu aktualisieren und zurückzugeben Als Nächstes zeige ich Ihnen, wie Sie ein Dokument entfernen. 16. Dokumente in Mongoose entfernen: In dieser Vorlesung werde ich Ihnen zeigen, wie Sie ein Dokument entfernen Um Zeit zu sparen, hole ich mir den Port für die Funktion „ Kurs aktualisieren“, dupliziere ihn und benenne ihn dann um, um den Kurs zu entfernen. Und schließlich, ersetze das durch Entferne die Geldbörse. Ordnung. Lassen Sie uns nun diese Funktion implementieren. Um also ein Dokument zu löschen, rufen wir Kurs auf. Hier haben wir diese Methode, löschen Sie eine. Diese Methode verwendet einen Filter oder ein Abfrageobjekt, sodass wir ein Objekt wie dieses übergeben können. Und mit diesem Abfrageobjekt können wir ein Dokument mit einer bestimmten ID finden. Wenn wir nun etwas Generischeres wie is published senden, auf False gesetzt ist, haben wir möglicherweise mehrere Kurse , die nicht veröffentlicht werden. Bei dieser Methode, einen löschen, wird der erste gefunden und gelöscht. In dieser Demo wollen wir das jetzt nicht verwenden. Ich werde das wieder auf dieses Abfrageobjekt zurücksetzen. Jetzt ähnlich der Update-One-Methode. Diese Methode gibt ein Versprechen zurück, sodass wir es entfernen, das Ergebnis abrufen und es hier speichern und dann auf der Konsole protokollieren können. Lassen Sie uns nun dieses Programm ausführen, also kein Indexpunkt js. Okay, hier ist unser Ergebnisobjekt und Sie können sehen, dass wir ein Dokument gelöscht haben. Wenn Sie nun mehrere Dokumente löschen möchten, anstatt eines zu löschen, verwenden Sie delete Manu Diese Methode gibt auch ein Ergebnisobjekt zurück , das die Anzahl der gelöschten Dokumente anzeigt Wenn Sie nun das gelöschte Dokument abrufen möchten, haben wir hier eine andere Methode. Stellen Sie den Punkt also genau nach der ID auf und entfernen Sie ihn. Also gibst du den Ausweis hier weiter. Das ist wieder vielversprechend. Wir warten darauf, holen das Ergebnis und speichern es in diesem Kursobjekt. Deshalb werde ich jetzt diese erste Zeile loben . Und wir haben diesen Kurs bereits gelöscht. Lassen Sie uns also dieses Programm ausführen und sehen, was passiert. Der Knoten ist für uns indexiert. Also bekommen wir NEIN. Wenn wir also keinen Kurs mit der angegebenen ID haben, gibt diese Methode NOP zurück