﻿1
00:00:01,336 --> 00:00:03,960
‫Kursleiter: Lassen Sie uns in diesem

2
00:00:03,960 --> 00:00:06,900
‫Video das Datenmodell, das wir gleich zu Beginn

3
00:00:06,900 --> 00:00:09,600
‫des Abschnitts erstellt haben, in tatsächlichen Code übersetzen.

4
00:00:09,600 --> 00:00:13,023
‫Und so werden wir dieses Mal das Bewertungsmodell implementieren.

5
00:00:14,780 --> 00:00:17,870
‫Der erste Schritt besteht also darin, eine neue Datei im Modellordner

6
00:00:17,870 --> 00:00:22,273
‫zu erstellen und sie ReviewModel zu nennen. js.

7
00:00:25,800 --> 00:00:29,480
‫Und für mich sieht dies nach einer weiteren großen

8
00:00:29,480 --> 00:00:31,640
‫Herausforderung für Sie aus, einige

9
00:00:31,640 --> 00:00:34,090
‫der bereits erlernten Fähigkeiten zu üben.

10
00:00:34,090 --> 00:00:36,890
‫Okay, in dieser Challenge möchte ich, dass Sie

11
00:00:36,890 --> 00:00:38,200
‫das Bewertungsmodell erstellen.

12
00:00:38,200 --> 00:00:41,370
‫Und was wir dort brauchen, ist eigentlich ganz einfach.

13
00:00:41,370 --> 00:00:43,220
‫Also lass mich das hier in einen Kommentar schreiben.

14
00:00:44,360 --> 00:00:46,090
‫Wir wollen also grundsätzlich eine

15
00:00:46,090 --> 00:00:48,030
‫Rezension, also den Text für die Rezension.

16
00:00:48,030 --> 00:00:49,350
‫Wir wollen eine

17
00:00:50,230 --> 00:00:51,840
‫Bewertung also einfach so.

18
00:00:51,840 --> 00:00:54,950
‫Dann wollen wir auch ein erstelltesAt so mit

19
00:00:54,950 --> 00:00:56,760
‫dem aktuellen Zeitstempel und

20
00:00:56,760 --> 00:01:00,880
‫dann auch einen Hinweis auf die Tour, zu der diese Bewertung

21
00:01:00,880 --> 00:01:02,590
‫gehört und auch

22
00:01:02,590 --> 00:01:05,793
‫auf den Benutzer, der diese Bewertung verfasst hat.

23
00:01:07,870 --> 00:01:12,090
‫Okay, also im Grunde zwei Elternreferenzen hier, richtig.

24
00:01:12,090 --> 00:01:14,270
‫Und so, mit dem, was Sie in

25
00:01:14,270 --> 00:01:15,790
‫den letzten paar Vorlesungen

26
00:01:15,790 --> 00:01:18,410
‫gelernt haben, sollten Sie diese Herausforderung eigentlich ganz

27
00:01:18,410 --> 00:01:19,660
‫alleine meistern können.

28
00:01:19,660 --> 00:01:23,033
‫Also, pausiere das Video jetzt und viel Glück dabei.

29
00:01:26,690 --> 00:01:29,430
‫Nun, okay, ich hoffe, Sie haben

30
00:01:29,430 --> 00:01:33,070
‫das nicht einfach übersprungen und stattdessen wirklich selbst implementiert

31
00:01:33,070 --> 00:01:35,813
‫und jedenfalls habe ich es so erstellt.

32
00:01:36,780 --> 00:01:39,490
‫Also müssen wir natürlich zuerst Mungo fordern und

33
00:01:46,880 --> 00:01:47,713
‫dann ist

34
00:01:50,728 --> 00:01:54,480
‫das ReviewSchema gleich New Mungo. Schema.

35
00:02:00,780 --> 00:02:03,053
‫Beginnen wir also mit dem Hinzufügen unserer Felder.

36
00:02:03,960 --> 00:02:06,790
‫Also erstmal ist das Review natürlich ein String.

37
00:02:06,790 --> 00:02:09,830
‫Nun, richtig und natürlich mache ich das zu

38
00:02:09,830 --> 00:02:12,660
‫schnell, also muss ich auch den Typ angeben

39
00:02:12,660 --> 00:02:15,013
‫und dann lass es uns auch

40
00:02:16,930 --> 00:02:17,763
‫auf

41
00:02:19,180 --> 00:02:22,623
‫eine erforderliche, zutreffende Überprüfung setzen, kann nicht leer sein.

42
00:02:23,820 --> 00:02:26,333
‫Dann wollen wir eine Bewertung,

43
00:02:30,130 --> 00:02:32,663
‫und diese ist von der Typennummer.

44
00:02:33,940 --> 00:02:37,333
‫Und die Bewertung liegt idealerweise zwischen eins und fünf.

45
00:02:38,580 --> 00:02:43,580
‫Das Minimum ist also eins und das Maximum fünf.

46
00:02:43,620 --> 00:02:44,700
‫Wie Sie

47
00:02:44,700 --> 00:02:47,000
‫bereits wissen, sind dies einige einfache Validatoren.

48
00:02:47,000 --> 00:02:50,260
‫Das funktioniert nur für Zahlen, richtig.

49
00:02:50,260 --> 00:02:51,543
‫Das ist hier nicht richtig.

50
00:02:52,570 --> 00:02:53,640
‫Okay.

51
00:02:53,640 --> 00:02:55,733
‫Als nächstes wird die erstellteAt.

52
00:02:59,630 --> 00:03:01,783
‫Darin steht Typ, Datum,

53
00:03:05,120 --> 00:03:07,360
‫und standardmäßig wollen wir

54
00:03:10,380 --> 00:03:12,300
‫Datum. jetzt.

55
00:03:12,300 --> 00:03:13,133
‫Okay.

56
00:03:14,480 --> 00:03:16,700
‫Das war also der einfache Teil.

57
00:03:16,700 --> 00:03:18,980
‫Und lassen Sie uns tatsächlich auch ein

58
00:03:18,980 --> 00:03:21,523
‫Modell erstellen und exportieren, bevor Sie diese Referenzen hinzufügen.

59
00:03:22,930 --> 00:03:25,023
‫Also const, Review ist

60
00:03:26,090 --> 00:03:29,710
‫gleich zu Mungo. Modell mit dem

61
00:03:32,630 --> 00:03:34,320
‫Namen Review.

62
00:03:34,320 --> 00:03:35,920
‫Und dann natürlich reviewSchema.

63
00:03:41,210 --> 00:03:44,430
‫Zum Abschluss des Kursmoduls. Export

64
00:03:46,040 --> 00:03:49,340
‫entspricht der Überprüfung.

65
00:03:49,340 --> 00:03:52,890
‫Okay, und jetzt kommt der Referenzteil.

66
00:03:52,890 --> 00:03:56,880
‫Eine Rezension muss also natürlich zu einer Tour gehören.

67
00:03:56,880 --> 00:03:58,900
‫Und es braucht auch einen Autor.

68
00:03:58,900 --> 00:03:59,733
‫Okay.

69
00:03:59,733 --> 00:04:01,710
‫Das haben wir also

70
00:04:01,710 --> 00:04:03,910
‫wieder in unserem Datenmodellierungsvortrag spezifiziert.

71
00:04:03,910 --> 00:04:06,000
‫Im Grunde wollten wir

72
00:04:06,000 --> 00:04:09,030
‫hier in diesem Fall die Elternreferenzierung implementieren.

73
00:04:09,030 --> 00:04:12,060
‫Denn sowohl die Tour als auch der Benutzer

74
00:04:12,060 --> 00:04:15,020
‫sind gewissermaßen die Eltern dieses Datensatzes.

75
00:04:15,020 --> 00:04:17,080
‫Und wir haben uns dafür entschieden, es

76
00:04:17,080 --> 00:04:18,790
‫auf diese Weise zu

77
00:04:18,790 --> 00:04:22,140
‫tun, weil wir potenziell alle übergeordneten Elemente löschen werden, richtig?

78
00:04:22,140 --> 00:04:24,680
‫Wir sollten unsere Anwendung also nicht mit

79
00:04:24,680 --> 00:04:27,600
‫dem Gedanken entwerfen, dass es nur wenige Bewertungen geben wird.

80
00:04:27,600 --> 00:04:30,660
‫Nur um dann nach einiger Zeit darauf zurückzukommen

81
00:04:30,660 --> 00:04:33,700
‫und festzustellen, dass unsere Annahmen falsch waren.

82
00:04:33,700 --> 00:04:36,660
‫Und jetzt müssen wir unser gesamtes Datenmodell neu aufbauen.

83
00:04:36,660 --> 00:04:38,340
‫Das wäre also schrecklich.

84
00:04:38,340 --> 00:04:41,110
‫In vielen Situationen, wie Sie bereits wissen,

85
00:04:41,110 --> 00:04:44,520
‫was wir nicht wirklich wissen, wird unsere Auslöschung zunehmen.

86
00:04:44,520 --> 00:04:47,970
‫Dann ist es am besten, sich für die Elternreferenzierung zu entscheiden.

87
00:04:47,970 --> 00:04:50,580
‫Genau das tun wir hier

88
00:04:50,580 --> 00:04:53,400
‫also, wenn wir Tour und Benutzer referenzieren.

89
00:04:53,400 --> 00:04:56,383
‫Also lass uns jetzt wirklich weitermachen und das implementieren.

90
00:04:57,390 --> 00:04:58,853
‫Und beginnend mit der Tour.

91
00:05:01,070 --> 00:05:02,650
‫In Ordung.

92
00:05:02,650 --> 00:05:06,153
‫Hier brauchen wir also etwas Platz, und okay.

93
00:05:07,630 --> 00:05:12,140
‫Der Typ ist also wie zuvor, Mungo, und das ist

94
00:05:12,140 --> 00:05:13,423
‫nicht richtig.

95
00:05:14,290 --> 00:05:18,593
‫Also Mungo. Schema. ObjectId, mit einem

96
00:05:21,600 --> 00:05:25,890
‫großen O und einem großen I, aber nicht dem D.

97
00:05:25,890 --> 00:05:26,930
‫Und ich

98
00:05:26,930 --> 00:05:29,760
‫sage Ihnen das nur, weil ich einmal so einen Ausweis

99
00:05:29,760 --> 00:05:32,370
‫geschrieben habe und dann eine halbe Stunde damit verbracht

100
00:05:32,370 --> 00:05:34,560
‫habe, herauszufinden, warum meine Anwendung nicht funktioniert.

101
00:05:34,560 --> 00:05:37,293
‫Okay, dieses D muss also klein geschrieben werden.

102
00:05:38,880 --> 00:05:39,713
‫Trotzdem.

103
00:05:39,713 --> 00:05:44,540
‫Die Referenz ist in diesem Fall natürlich die Tour.

104
00:05:44,540 --> 00:05:46,813
‫Und das wollen wir auch fordern.

105
00:05:49,680 --> 00:05:54,680
‫Also wahr und dann muss Review zu einer

106
00:05:57,300 --> 00:05:58,780
‫Tour gehören.

107
00:05:58,780 --> 00:05:59,670
‫Okay.

108
00:05:59,670 --> 00:06:02,820
‫Und so weiß jetzt auch jedes Review-Dokument

109
00:06:02,820 --> 00:06:05,870
‫genau, zu welcher Tour es gehört.

110
00:06:05,870 --> 00:06:08,570
‫Während die Tour natürlich zunächst nicht weiß,

111
00:06:08,570 --> 00:06:11,640
‫welche Bewertungen und wie viele Bewertungen es gibt.

112
00:06:11,640 --> 00:06:13,070
‫Aber das ist ein

113
00:06:13,070 --> 00:06:14,820
‫Problem, das wir später tatsächlich lösen werden.

114
00:06:16,290 --> 00:06:17,220
‫Okay.

115
00:06:17,220 --> 00:06:20,453
‫Als nächstes wollen wir, wenn es eine Rezension gibt, nicht

116
00:06:20,453 --> 00:06:23,270
‫nur wissen, zu welcher Tour sie gehört, sondern auch,

117
00:06:23,270 --> 00:06:25,373
‫wer diese Rezension geschrieben hat.

118
00:06:26,570 --> 00:06:27,933
‫Also

119
00:06:29,580 --> 00:06:32,410
‫Benutzer, und wieder die gleiche

120
00:06:32,410 --> 00:06:37,243
‫Art von Mungo. Schema. ObjectId, und dieses

121
00:06:38,610 --> 00:06:39,443
‫Mal

122
00:06:39,443 --> 00:06:44,443
‫wird die Referenz, wie Sie sich vorstellen können, user.

123
00:06:44,460 --> 00:06:47,880
‫Okay, und wieder machen wir es

124
00:06:47,880 --> 00:06:51,960
‫erforderlich, denn nun, eine Rezension kann im Grunde

125
00:06:51,960 --> 00:06:54,830
‫ohne einen Autor nicht funktionieren.

126
00:06:54,830 --> 00:06:56,800
‫Daher muss

127
00:06:58,250 --> 00:07:01,163
‫die Bewertung einem Benutzer gehören.

128
00:07:05,080 --> 00:07:06,563
‫Okay, das ist es tatsächlich.

129
00:07:07,470 --> 00:07:08,303
‫In Ordung.

130
00:07:09,670 --> 00:07:12,750
‫Lassen Sie uns diese Optionen nun zum Abschluss

131
00:07:12,750 --> 00:07:16,280
‫auch dem Schema hinzufügen, wo wir es so gestalten, dass

132
00:07:16,280 --> 00:07:19,470
‫virtuelle Eigenschaften auch in Json- und Objektausgaben angezeigt werden.

133
00:07:19,470 --> 00:07:20,303
‫Okay.

134
00:07:20,303 --> 00:07:22,450
‫So haben wir das vorher bei den Touren gemacht.

135
00:07:22,450 --> 00:07:25,290
‫Ich bin mir nicht sicher, ob wir es im Benutzermodell getan haben.

136
00:07:25,290 --> 00:07:27,080
‫Aber wie auch immer, hier werden wir

137
00:07:27,080 --> 00:07:28,480
‫es tatsächlich etwas später brauchen.

138
00:07:28,480 --> 00:07:30,160
‫Also müssen wir das spezifizieren.

139
00:07:30,160 --> 00:07:32,710
‫Denken Sie daran, im Grunde meine

140
00:07:36,320 --> 00:07:37,860
‫ich diesen Teil.

141
00:07:37,860 --> 00:07:40,570
‫Also werde ich tatsächlich weitermachen und es kopieren.

142
00:07:40,570 --> 00:07:42,023
‫Nur um uns etwas Zeit zu sparen.

143
00:07:45,250 --> 00:07:48,580
‫Und das ist wiederum alles, um wirklich sicherzustellen, dass, wenn wir

144
00:07:48,580 --> 00:07:50,730
‫eine virtuelle Eigenschaft haben, im Grunde

145
00:07:50,730 --> 00:07:53,350
‫ein Feld, das nicht in der Datenbank gespeichert

146
00:07:53,350 --> 00:07:55,850
‫ist, sondern mit einem anderen Wert berechnet wird.

147
00:07:55,850 --> 00:07:59,670
‫Daher möchten wir, dass dies auch immer dann angezeigt wird, wenn eine Ausgabe erfolgt.

148
00:07:59,670 --> 00:08:02,113
‫Richtig, und das machen wir hier.

149
00:08:03,130 --> 00:08:03,963
‫Okay.

150
00:08:03,963 --> 00:08:07,490
‫Und so denke ich eigentlich, das war es für den Moment.

151
00:08:07,490 --> 00:08:08,550
‫Sehr einfach.

152
00:08:08,550 --> 00:08:11,530
‫Der einzige etwas knifflige Teil besteht darin, diese Referenzen

153
00:08:11,530 --> 00:08:13,010
‫hier zu erstellen.

154
00:08:13,010 --> 00:08:14,680
‫Aber wir haben das tatsächlich

155
00:08:14,680 --> 00:08:17,673
‫schon früher gemacht und so funktioniert es wirklich genau so.

156
00:08:19,430 --> 00:08:21,800
‫Im nächsten Video werden wir dann das

157
00:08:21,800 --> 00:08:24,470
‫Schema verwenden, um einige neue Bewertungen zu erstellen.

158
00:08:24,470 --> 00:08:25,653
‫Also bis dann.

