‫Kursleiter: Lassen Sie uns in diesem
‫Video das Datenmodell, das wir gleich zu Beginn
‫des Abschnitts erstellt haben, in tatsächlichen Code übersetzen.
‫Und so werden wir dieses Mal das Bewertungsmodell implementieren.
‫Der erste Schritt besteht also darin, eine neue Datei im Modellordner
‫zu erstellen und sie ReviewModel zu nennen. js.
‫Und für mich sieht dies nach einer weiteren großen
‫Herausforderung für Sie aus, einige
‫der bereits erlernten Fähigkeiten zu üben.
‫Okay, in dieser Challenge möchte ich, dass Sie
‫das Bewertungsmodell erstellen.
‫Und was wir dort brauchen, ist eigentlich ganz einfach.
‫Also lass mich das hier in einen Kommentar schreiben.
‫Wir wollen also grundsätzlich eine
‫Rezension, also den Text für die Rezension.
‫Wir wollen eine
‫Bewertung also einfach so.
‫Dann wollen wir auch ein erstelltesAt so mit
‫dem aktuellen Zeitstempel und
‫dann auch einen Hinweis auf die Tour, zu der diese Bewertung
‫gehört und auch
‫auf den Benutzer, der diese Bewertung verfasst hat.
‫Okay, also im Grunde zwei Elternreferenzen hier, richtig.
‫Und so, mit dem, was Sie in
‫den letzten paar Vorlesungen
‫gelernt haben, sollten Sie diese Herausforderung eigentlich ganz
‫alleine meistern können.
‫Also, pausiere das Video jetzt und viel Glück dabei.
‫Nun, okay, ich hoffe, Sie haben
‫das nicht einfach übersprungen und stattdessen wirklich selbst implementiert
‫und jedenfalls habe ich es so erstellt.
‫Also müssen wir natürlich zuerst Mungo fordern und
‫dann ist
‫das ReviewSchema gleich New Mungo. Schema.
‫Beginnen wir also mit dem Hinzufügen unserer Felder.
‫Also erstmal ist das Review natürlich ein String.
‫Nun, richtig und natürlich mache ich das zu
‫schnell, also muss ich auch den Typ angeben
‫und dann lass es uns auch
‫auf
‫eine erforderliche, zutreffende Überprüfung setzen, kann nicht leer sein.
‫Dann wollen wir eine Bewertung,
‫und diese ist von der Typennummer.
‫Und die Bewertung liegt idealerweise zwischen eins und fünf.
‫Das Minimum ist also eins und das Maximum fünf.
‫Wie Sie
‫bereits wissen, sind dies einige einfache Validatoren.
‫Das funktioniert nur für Zahlen, richtig.
‫Das ist hier nicht richtig.
‫Okay.
‫Als nächstes wird die erstellteAt.
‫Darin steht Typ, Datum,
‫und standardmäßig wollen wir
‫Datum. jetzt.
‫Okay.
‫Das war also der einfache Teil.
‫Und lassen Sie uns tatsächlich auch ein
‫Modell erstellen und exportieren, bevor Sie diese Referenzen hinzufügen.
‫Also const, Review ist
‫gleich zu Mungo. Modell mit dem
‫Namen Review.
‫Und dann natürlich reviewSchema.
‫Zum Abschluss des Kursmoduls. Export
‫entspricht der Überprüfung.
‫Okay, und jetzt kommt der Referenzteil.
‫Eine Rezension muss also natürlich zu einer Tour gehören.
‫Und es braucht auch einen Autor.
‫Okay.
‫Das haben wir also
‫wieder in unserem Datenmodellierungsvortrag spezifiziert.
‫Im Grunde wollten wir
‫hier in diesem Fall die Elternreferenzierung implementieren.
‫Denn sowohl die Tour als auch der Benutzer
‫sind gewissermaßen die Eltern dieses Datensatzes.
‫Und wir haben uns dafür entschieden, es
‫auf diese Weise zu
‫tun, weil wir potenziell alle übergeordneten Elemente löschen werden, richtig?
‫Wir sollten unsere Anwendung also nicht mit
‫dem Gedanken entwerfen, dass es nur wenige Bewertungen geben wird.
‫Nur um dann nach einiger Zeit darauf zurückzukommen
‫und festzustellen, dass unsere Annahmen falsch waren.
‫Und jetzt müssen wir unser gesamtes Datenmodell neu aufbauen.
‫Das wäre also schrecklich.
‫In vielen Situationen, wie Sie bereits wissen,
‫was wir nicht wirklich wissen, wird unsere Auslöschung zunehmen.
‫Dann ist es am besten, sich für die Elternreferenzierung zu entscheiden.
‫Genau das tun wir hier
‫also, wenn wir Tour und Benutzer referenzieren.
‫Also lass uns jetzt wirklich weitermachen und das implementieren.
‫Und beginnend mit der Tour.
‫In Ordung.
‫Hier brauchen wir also etwas Platz, und okay.
‫Der Typ ist also wie zuvor, Mungo, und das ist
‫nicht richtig.
‫Also Mungo. Schema. ObjectId, mit einem
‫großen O und einem großen I, aber nicht dem D.
‫Und ich
‫sage Ihnen das nur, weil ich einmal so einen Ausweis
‫geschrieben habe und dann eine halbe Stunde damit verbracht
‫habe, herauszufinden, warum meine Anwendung nicht funktioniert.
‫Okay, dieses D muss also klein geschrieben werden.
‫Trotzdem.
‫Die Referenz ist in diesem Fall natürlich die Tour.
‫Und das wollen wir auch fordern.
‫Also wahr und dann muss Review zu einer
‫Tour gehören.
‫Okay.
‫Und so weiß jetzt auch jedes Review-Dokument
‫genau, zu welcher Tour es gehört.
‫Während die Tour natürlich zunächst nicht weiß,
‫welche Bewertungen und wie viele Bewertungen es gibt.
‫Aber das ist ein
‫Problem, das wir später tatsächlich lösen werden.
‫Okay.
‫Als nächstes wollen wir, wenn es eine Rezension gibt, nicht
‫nur wissen, zu welcher Tour sie gehört, sondern auch,
‫wer diese Rezension geschrieben hat.
‫Also
‫Benutzer, und wieder die gleiche
‫Art von Mungo. Schema. ObjectId, und dieses
‫Mal
‫wird die Referenz, wie Sie sich vorstellen können, user.
‫Okay, und wieder machen wir es
‫erforderlich, denn nun, eine Rezension kann im Grunde
‫ohne einen Autor nicht funktionieren.
‫Daher muss
‫die Bewertung einem Benutzer gehören.
‫Okay, das ist es tatsächlich.
‫In Ordung.
‫Lassen Sie uns diese Optionen nun zum Abschluss
‫auch dem Schema hinzufügen, wo wir es so gestalten, dass
‫virtuelle Eigenschaften auch in Json- und Objektausgaben angezeigt werden.
‫Okay.
‫So haben wir das vorher bei den Touren gemacht.
‫Ich bin mir nicht sicher, ob wir es im Benutzermodell getan haben.
‫Aber wie auch immer, hier werden wir
‫es tatsächlich etwas später brauchen.
‫Also müssen wir das spezifizieren.
‫Denken Sie daran, im Grunde meine
‫ich diesen Teil.
‫Also werde ich tatsächlich weitermachen und es kopieren.
‫Nur um uns etwas Zeit zu sparen.
‫Und das ist wiederum alles, um wirklich sicherzustellen, dass, wenn wir
‫eine virtuelle Eigenschaft haben, im Grunde
‫ein Feld, das nicht in der Datenbank gespeichert
‫ist, sondern mit einem anderen Wert berechnet wird.
‫Daher möchten wir, dass dies auch immer dann angezeigt wird, wenn eine Ausgabe erfolgt.
‫Richtig, und das machen wir hier.
‫Okay.
‫Und so denke ich eigentlich, das war es für den Moment.
‫Sehr einfach.
‫Der einzige etwas knifflige Teil besteht darin, diese Referenzen
‫hier zu erstellen.
‫Aber wir haben das tatsächlich
‫schon früher gemacht und so funktioniert es wirklich genau so.
‫Im nächsten Video werden wir dann das
‫Schema verwenden, um einige neue Bewertungen zu erstellen.
‫Also bis dann.