﻿1
00:00:01,110 --> 00:00:02,910
‫Kursleiter: Dies ist also

2
00:00:02,910 --> 00:00:05,230
‫der zweite Teil der Berechnung der Bewertungsstatistik.

3
00:00:05,230 --> 00:00:08,873
‫Diesmal, wenn eine Bewertung aktualisiert oder gelöscht wird.

4
00:00:10,780 --> 00:00:13,310
‫Und dieser Teil ist tatsächlich etwas

5
00:00:13,310 --> 00:00:15,450
‫schwieriger, denn bedenken Sie,

6
00:00:15,450 --> 00:00:17,730
‫dass eine Bewertung mit findByIdAndUpdate

7
00:00:19,829 --> 00:00:21,246
‫oder auch

8
00:00:25,490 --> 00:00:28,277
‫findByIdAndDelete aktualisiert oder gelöscht wird, oder?

9
00:00:33,540 --> 00:00:37,020
‫Für diese haben wir also eigentlich keine

10
00:00:37,020 --> 00:00:39,830
‫Dokumenten-Middleware, sondern nur Abfrage-Middleware, okay.

11
00:00:39,830 --> 00:00:42,630
‫In der Abfrage haben wir also eigentlich

12
00:00:42,630 --> 00:00:46,140
‫keinen direkten Zugriff auf das Dokument, um dann etwas

13
00:00:46,140 --> 00:00:48,300
‫Ähnliches zu tun, okay.

14
00:00:48,300 --> 00:00:51,380
‫Denn denken Sie daran, wir brauchen Zugriff auf

15
00:00:51,380 --> 00:00:54,130
‫die aktuelle Überprüfung, damit wir von dort

16
00:00:54,130 --> 00:00:58,030
‫die Tour-ID extrahieren und dann die Statistiken daraus berechnen können,

17
00:00:58,030 --> 00:01:00,130
‫richtig, aber auch hier haben

18
00:01:00,130 --> 00:01:02,830
‫wir für diese Hooks nur Abfrage-Middleware, okay.

19
00:01:02,830 --> 00:01:04,890
‫Aber lassen Sie mich Ihnen jetzt

20
00:01:04,890 --> 00:01:07,610
‫einen netten Trick zeigen, um diese Einschränkung tatsächlich zu umgehen.

21
00:01:07,610 --> 00:01:10,040
‫Also werden wir eine Pre-Middleware

22
00:01:10,040 --> 00:01:14,073
‫für diese Hooks implementieren, im Grunde für diese Events.

23
00:01:15,860 --> 00:01:19,730
‫Also pre, und dann werde ich wieder einen regulären

24
00:01:19,730 --> 00:01:22,870
‫Ausdruck für einen String verwenden, der mit

25
00:01:22,870 --> 00:01:25,457
‫findOneAnd beginnt und das war's.

26
00:01:28,641 --> 00:01:30,410
‫Und so wird

27
00:01:30,410 --> 00:01:33,970
‫dieser dann für findOneAndUpdate und findOneAndDelete funktionieren,

28
00:01:34,830 --> 00:01:37,150
‫denn denken Sie daran,

29
00:01:37,150 --> 00:01:40,480
‫dass findByIdAndUpdate hinter den Kulissen nur eine

30
00:01:40,480 --> 00:01:44,750
‫Abkürzung für findOneAndUpdate mit der aktuellen ID ist, richtig.

31
00:01:44,750 --> 00:01:48,530
‫Hier müssen wir also tatsächlich

32
00:01:48,530 --> 00:01:52,833
‫die Middleware-Hooks findOneAndDelete und findOneAndUpdate verwenden.

33
00:01:55,500 --> 00:01:59,970
‫Also, Funktion, und es bekommt das nächste Schlüsselwort,

34
00:01:59,970 --> 00:02:02,420
‫weil es Pre-Middleware ist.

35
00:02:02,420 --> 00:02:05,310
‫Denken Sie also daran, dass das Ziel darin

36
00:02:05,310 --> 00:02:07,990
‫besteht, Zugriff auf das aktuelle Überprüfungsdokument zu

37
00:02:07,990 --> 00:02:11,280
‫erhalten, okay, aber hier ist dieses Schlüsselwort die aktuelle Abfrage.

38
00:02:11,280 --> 00:02:13,650
‫Wie wollen wir das nun umgehen?

39
00:02:13,650 --> 00:02:16,150
‫Nun, wir können im Grunde eine Abfrage ausführen,

40
00:02:16,150 --> 00:02:18,200
‫und dann erhalten wir das Dokument,

41
00:02:18,200 --> 00:02:20,040
‫das gerade verarbeitet wird.

42
00:02:20,040 --> 00:02:22,650
‫Dazu können wir findOne verwenden.

43
00:02:25,590 --> 00:02:26,590
‫Und das ist es.

44
00:02:26,590 --> 00:02:29,740
‫Dann müssen wir nur noch auf diese Abfrage warten und

45
00:02:29,740 --> 00:02:31,090
‫sie dann irgendwo speichern.

46
00:02:34,140 --> 00:02:38,850
‫Nennen wir es also r, was zur Überprüfung steht, okay.

47
00:02:38,850 --> 00:02:40,763
‫Speichern Sie es dann als asynchron.

48
00:02:42,650 --> 00:02:43,773
‫Und das ist es.

49
00:02:45,000 --> 00:02:47,830
‫Und um sicherzustellen, dass dies hier

50
00:02:47,830 --> 00:02:52,340
‫funktioniert, loggen wir uns das jetzt einfach in die Konsole ein, okay.

51
00:02:52,340 --> 00:02:55,080
‫Ohne Berechnungen anzustellen, interessiert

52
00:02:55,080 --> 00:02:56,760
‫uns nur,

53
00:02:56,760 --> 00:02:59,960
‫ob dieser nette Trick hier funktioniert.

54
00:02:59,960 --> 00:03:02,410
‫Im Grunde also, der Trick, um das in

55
00:03:02,410 --> 00:03:04,070
‫einer Abfrage-Middleware zu umgehen, haben

56
00:03:04,070 --> 00:03:05,853
‫wir nur Zugriff auf die Abfrage.

57
00:03:06,890 --> 00:03:09,850
‫Wir müssen also wieder auf das

58
00:03:09,850 --> 00:03:13,210
‫Dokument zugreifen und führen diese Abfrage grundsätzlich mit

59
00:03:13,210 --> 00:03:14,463
‫findOne aus.

60
00:03:15,620 --> 00:03:20,603
‫In Ordnung, also aktualisieren wir eine Rezension, und aktualisieren wir die letzte,

61
00:03:22,570 --> 00:03:26,313
‫die wir gemacht haben, in Ordnung, und die Bewertung,

62
00:03:31,310 --> 00:03:33,050
‫jetzt setzen wir

63
00:03:33,050 --> 00:03:35,010
‫sie tatsächlich auf vier.

64
00:03:35,010 --> 00:03:37,080
‫Vorher waren es also

65
00:03:38,130 --> 00:03:42,023
‫fünf und jetzt ändern wir es auf vier.

66
00:03:43,040 --> 00:03:44,083
‫Also hat

67
00:03:46,900 --> 00:03:50,620
‫es das gesendet, und hier ist die Rezension.

68
00:03:50,620 --> 00:03:53,140
‫Nun ist die Bewertung an dieser Stelle

69
00:03:53,140 --> 00:03:56,130
‫natürlich immer noch auf fünf gesetzt, da dieser findOne

70
00:03:56,130 --> 00:03:58,850
‫hier wirklich das Dokument aus der Datenbank holt

71
00:03:58,850 --> 00:04:01,660
‫und zu diesem Zeitpunkt, im Pre, noch keine

72
00:04:01,660 --> 00:04:04,900
‫Änderungen in der Datenbank beibehalten hat, und so waren es

73
00:04:04,900 --> 00:04:06,540
‫vorher fünf, und jetzt

74
00:04:06,540 --> 00:04:08,990
‫werden es immer noch fünf sein.

75
00:04:08,990 --> 00:04:10,460
‫Aber das spielt

76
00:04:10,460 --> 00:04:13,750
‫hier keine Rolle, denn uns interessiert nur diese ID.

77
00:04:13,750 --> 00:04:16,580
‫Eigentlich diese Tour-ID, richtig, denn das ist

78
00:04:16,580 --> 00:04:18,350
‫es, was wir

79
00:04:18,350 --> 00:04:21,220
‫brauchen, um die durchschnittlichen Bewertungen zu berechnen.

80
00:04:21,220 --> 00:04:24,363
‫Okay, und jetzt verwenden wir diese Funktion tatsächlich.

81
00:04:25,240 --> 00:04:27,850
‫Okay, denken wir jetzt darüber

82
00:04:27,850 --> 00:04:32,190
‫nach, denn wenn wir diese calcAverageRatings-Funktion zu diesem Zeitpunkt

83
00:04:32,190 --> 00:04:33,850
‫verwenden würden,

84
00:04:33,850 --> 00:04:36,100
‫würden wir die Statistiken

85
00:04:36,100 --> 00:04:39,490
‫mit den nicht aktualisierten Daten berechnen, okay.

86
00:04:39,490 --> 00:04:42,390
‫Und genau aus diesem Grund mussten wir hier

87
00:04:42,390 --> 00:04:45,400
‫oben auch post und nicht pre verwenden, ok,

88
00:04:45,400 --> 00:04:48,650
‫denn erst nachdem das Dokument bereits in der Datenbank

89
00:04:48,650 --> 00:04:50,620
‫gespeichert ist, macht es

90
00:04:50,620 --> 00:04:52,850
‫dann Sinn, die Bewertungen zu berechnen.

91
00:04:52,850 --> 00:04:55,570
‫Und hier ist es genau dasselbe, mit dem

92
00:04:55,570 --> 00:04:58,650
‫großen Unterschied, dass wir dieses Pre nicht einfach in

93
00:04:58,650 --> 00:05:00,533
‫einen Post umwandeln können.

94
00:05:01,390 --> 00:05:04,500
‫Das können wir also nicht, weil wir zu diesem

95
00:05:04,500 --> 00:05:07,260
‫Zeitpunkt keinen Zugriff mehr auf die Abfrage haben,

96
00:05:07,260 --> 00:05:10,410
‫weil die Abfrage bereits ausgeführt wurde, richtig, und so

97
00:05:10,410 --> 00:05:11,500
‫können wir

98
00:05:11,500 --> 00:05:13,670
‫ohne die Abfrage das Überprüfungsdokument nicht

99
00:05:13,670 --> 00:05:16,410
‫speichern und können dann diese Funktion nicht ausführen.

100
00:05:16,410 --> 00:05:20,360
‫Das ist also wirklich verwirrend, ich verstehe, aber ich habe mich wirklich

101
00:05:20,360 --> 00:05:23,710
‫entschieden, diesen Vortrag auf diese Weise zu erstellen, weil dies

102
00:05:23,710 --> 00:05:25,790
‫wirklich die einzige Lösung für

103
00:05:25,790 --> 00:05:28,730
‫dieses Problem ist und es eine wirklich großartige

104
00:05:28,730 --> 00:05:32,240
‫Übung für Sie ist, diese Hallo-Erfahrung im Grunde zu verstehen.

105
00:05:32,240 --> 00:05:35,833
‫Also, die Lösung dafür ist, jetzt post, also,

106
00:05:37,520 --> 00:05:40,690
‫reviewSchema zu verwenden, dann im Grunde dasselbe,

107
00:05:40,690 --> 00:05:44,460
‫also lasst uns das alles einfach kopieren, unser

108
00:05:44,460 --> 00:05:47,640
‫Leben ein bisschen einfacher machen, das loswerden

109
00:05:47,640 --> 00:05:50,033
‫und das loswerden nächste.

110
00:05:51,850 --> 00:05:54,320
‫Hier müssen wir auch als

111
00:05:54,320 --> 00:05:58,170
‫nächstes anrufen, okay, aber dann machen wir es posten, okay.

112
00:05:58,170 --> 00:05:59,730
‫Und nun also zu

113
00:05:59,730 --> 00:06:01,840
‫diesem Zeitpunkt, also nachdem die Abfrage bereits

114
00:06:01,840 --> 00:06:04,700
‫beendet ist und somit die Überprüfung aktualisiert wurde, ist dies

115
00:06:04,700 --> 00:06:06,290
‫ein perfekter Zeitpunkt, an dem

116
00:06:06,290 --> 00:06:08,283
‫wir diese Funktion dann aufrufen können.

117
00:06:09,510 --> 00:06:12,720
‫Berechnen Sie also durchschnittliche Bewertungen.

118
00:06:12,720 --> 00:06:15,930
‫Aber woher bekommen wir jetzt die Tour-ID?

119
00:06:15,930 --> 00:06:17,860
‫Nun, wir müssen einen Trick anwenden,

120
00:06:17,860 --> 00:06:21,260
‫der im Wesentlichen darin besteht, Daten von der Prä-Middleware an

121
00:06:21,260 --> 00:06:23,000
‫die Post-Middleware zu übergeben.

122
00:06:23,000 --> 00:06:26,690
‫Anstatt dieses Dokument in einer einfachen Variablen zu speichern,

123
00:06:26,690 --> 00:06:30,403
‫speichern wir es hier. R.

124
00:06:31,750 --> 00:06:35,773
‫Im Grunde erstellen wir eine Eigenschaft für diese Variable.

125
00:06:36,700 --> 00:06:40,390
‫Okay, und jetzt haben wir hier immer noch Zugriff darauf.

126
00:06:40,390 --> 00:06:45,350
‫Und so können wir das jetzt sagen. r, die sich erinnern, ist die Überprüfung,

127
00:06:45,350 --> 00:06:47,603
‫und dann . Tour.

128
00:06:49,220 --> 00:06:53,300
‫Das ist also wieder ziemlich verwirrend, aber auch wieder

129
00:06:53,300 --> 00:06:56,850
‫ziemlich lustig, wenn man einmal versteht, wie das

130
00:06:56,850 --> 00:06:58,873
‫wirklich funktioniert, okay.

131
00:06:59,800 --> 00:07:03,200
‫Nun, wir brauchen hier wieder so etwas, um diese

132
00:07:03,200 --> 00:07:06,320
‫Funktion hier tatsächlich aufzurufen, denn denken Sie daran,

133
00:07:06,320 --> 00:07:08,460
‫dass dies tatsächlich eine

134
00:07:08,460 --> 00:07:12,570
‫statische Methode ist und wir sie daher im Modell aufrufen müssen.

135
00:07:12,570 --> 00:07:15,500
‫Wo ist nun dieses Modell in diesem Fall?

136
00:07:15,500 --> 00:07:20,500
‫Nun, es ist dabei. r, was in diesem Fall

137
00:07:20,848 --> 00:07:22,550
‫äquivalent zu diesem

138
00:07:22,550 --> 00:07:25,113
‫hier in dieser Middleware ist. Konstrukteur. calcAverageRatings.

139
00:07:26,427 --> 00:07:29,217
‫Woo, das sieht ziemlich überwältigend aus, oder?

140
00:07:31,860 --> 00:07:35,403
‫Das müssen wir natürlich abwarten, deshalb haben wir das als

141
00:07:36,600 --> 00:07:38,100
‫asynchron deklariert, okay.

142
00:07:38,100 --> 00:07:42,600
‫Auch hier haben wir im Wesentlichen diesen Weg verwendet, um die

143
00:07:42,600 --> 00:07:46,210
‫Daten von der Prä-Middleware an die Post-Middleware zu übergeben,

144
00:07:46,210 --> 00:07:48,530
‫und haben dann hier

145
00:07:48,530 --> 00:07:50,930
‫das Überprüfungsdokument aus dieser Variablen abgerufen.

146
00:07:50,930 --> 00:07:55,060
‫Okay, und das mussten wir auch wieder so machen,

147
00:07:55,060 --> 00:07:59,970
‫weil zu diesem Zeitpunkt hier die Abfrage bereits ausgeführt wurde und

148
00:07:59,970 --> 00:08:01,317
‫wir dies

149
00:08:01,317 --> 00:08:03,550
‫hier nicht tun konnten.

150
00:08:03,550 --> 00:08:06,783
‫Und schreiben wir das mal

151
00:08:11,950 --> 00:08:16,753
‫auf; funktioniert hier NICHT, Abfrage wurde bereits ausgeführt.

152
00:08:19,690 --> 00:08:21,253
‫Großartig, und damit sollten wir eigentlich jetzt

153
00:08:22,610 --> 00:08:24,130
‫bereit sein, dies zu testen.

154
00:08:24,130 --> 00:08:27,103
‫Also lasst uns diesen hier noch

155
00:08:28,100 --> 00:08:32,850
‫einmal aktualisieren und auf eine Bewertung von eins setzen, in Ordnung.

156
00:08:32,850 --> 00:08:37,493
‫Werfen wir nun einen Blick hier, bis Sie sehen, dass die Anzahl der Bewertungen

157
00:08:39,160 --> 00:08:41,060
‫immer noch fünf ist, aber

158
00:08:41,060 --> 00:08:44,020
‫der Durchschnitt ist jetzt nur noch drei, und jetzt

159
00:08:44,020 --> 00:08:46,620
‫ist die Frage, ob das wirklich auch auf

160
00:08:46,620 --> 00:08:49,220
‫der Tour aktualisiert wurde, und ja, das tat

161
00:08:49,220 --> 00:08:50,593
‫es tatsächlich .

162
00:08:53,740 --> 00:08:58,150
‫Also fünf Bewertungen mit einem Durchschnitt von drei.

163
00:08:58,150 --> 00:09:02,040
‫Toll, lassen Sie uns jetzt einen anderen aktualisieren.

164
00:09:02,040 --> 00:09:06,220
‫Dazu holen wir uns also alle unsere Bewertungen,

165
00:09:06,220 --> 00:09:09,543
‫und eigentlich wollen wir nicht alle,

166
00:09:11,570 --> 00:09:14,280
‫sondern nur die letzte.

167
00:09:14,280 --> 00:09:16,201
‫Und hier habe ich immer

168
00:09:16,201 --> 00:09:18,730
‫noch diesen Filter, also sollte ich ihn

169
00:09:18,730 --> 00:09:20,253
‫loswerden, also bekommen

170
00:09:21,650 --> 00:09:26,650
‫wir alle 65 Ergebnisse, also all diese Bewertungen, aber wir wollen nur die letzten,

171
00:09:26,980 --> 00:09:29,280
‫also die, die wir gerade erstellt haben.

172
00:09:29,280 --> 00:09:31,073
‫Also lass uns aktualisieren...

173
00:09:32,820 --> 00:09:34,160
‫Ich bin mir nicht sicher, denn eigentlich sind sie hier nicht in Ordnung.

174
00:09:37,570 --> 00:09:42,090
‫Okay, hier haben wir die neuesten.

175
00:09:42,090 --> 00:09:47,090
‫Lassen Sie mich jetzt diesen hier aktualisieren, sagen wir, vier, nur

176
00:09:47,490 --> 00:09:50,963
‫als letzten Test, und damit sollte der

177
00:09:56,540 --> 00:09:59,410
‫Durchschnitt ein wenig angehoben werden.

178
00:09:59,410 --> 00:10:01,173
‫Und das tat es tatsächlich.

179
00:10:02,490 --> 00:10:04,090
‫Also, 3. 6 jetzt, und natürlich ist die Zahl immer

180
00:10:04,090 --> 00:10:07,400
‫noch fünf, weil Sie keine neue Bewertung hinzugefügt haben.

181
00:10:07,400 --> 00:10:10,400
‫Also beim Update funktioniert es super, testen wir

182
00:10:10,400 --> 00:10:12,700
‫es jetzt auch mal beim Löschen.

183
00:10:12,700 --> 00:10:15,463
‫Also lass uns die gerade

184
00:10:17,470 --> 00:10:21,710
‫aktualisierte Rezension löschen und jetzt sollten wir nur noch

185
00:10:23,350 --> 00:10:26,860
‫vier sein, und tatsächlich sind wir hier.

186
00:10:26,860 --> 00:10:28,550
‫Also jetzt nur noch vier.

187
00:10:28,550 --> 00:10:30,100
‫Und lassen Sie uns alle löschen.

188
00:10:30,100 --> 00:10:32,053
‫Dieser ist also der nächste.

189
00:10:35,410 --> 00:10:36,723
‫Ah, hier sind wir.

190
00:10:45,038 --> 00:10:46,180
‫Dann auch dieses.

191
00:10:46,180 --> 00:10:47,303
‫Jetzt sollten wir

192
00:10:53,560 --> 00:10:55,760
‫also nur noch drei sein, oder

193
00:10:56,970 --> 00:11:00,350
‫eigentlich haben wir nur noch zwei mit einem Durchschnitt von vier.

194
00:11:00,350 --> 00:11:01,893
‫Schauen wir uns also mal an, welches uns noch übrig ist.

195
00:11:05,600 --> 00:11:08,300
‫Also dieser mit drei und dieser mit fünf.

196
00:11:08,300 --> 00:11:12,330
‫Und deshalb haben wir diesen Durchschnitt von vier.

197
00:11:12,330 --> 00:11:15,203
‫Also lasst uns diesen loswerden und jetzt sollte

198
00:11:19,210 --> 00:11:21,320
‫unser Durchschnitt fünf sein, oder?

199
00:11:21,320 --> 00:11:25,020
‫Oder eigentlich drei, weil der einzige, der noch übrig

200
00:11:25,020 --> 00:11:26,340
‫ist, drei hat.

201
00:11:26,340 --> 00:11:29,340
‫Und jetzt der letzte Test, den letzten

202
00:11:29,340 --> 00:11:33,350
‫löschen, nur um zu sehen, was passiert, wenn wir das tun.

203
00:11:33,350 --> 00:11:35,993
‫Und wir erhalten hier einen Fehler.

204
00:11:41,070 --> 00:11:42,530
‫Die Eigenschaft nRating von undefined kann also nicht gelesen werden.

205
00:11:42,530 --> 00:11:46,400
‫Das ist also calcAverageRatings in Zeile 69.

206
00:11:46,400 --> 00:11:50,683
‫Weiß also nicht was das ist.

207
00:11:53,280 --> 00:11:54,903
‫Also, Zeile 69, und so ist es dieses Problem hier.

208
00:11:55,760 --> 00:12:00,440
‫Wir versuchen also, nRating von undefined zu lesen.

209
00:12:00,440 --> 00:12:03,530
‫Statistik Null ist also im Grunde undefiniert.

210
00:12:03,530 --> 00:12:06,420
‫Und das liegt daran, dass, wenn es hier

211
00:12:06,420 --> 00:12:09,400
‫im Grunde kein Dokument gibt, das dieser Abfrage entspricht,

212
00:12:09,400 --> 00:12:11,780
‫wir einfach ein leeres Array zurückgeben.

213
00:12:11,780 --> 00:12:13,947
‫Und genau das haben wir hier unten.

214
00:12:13,947 --> 00:12:17,100
‫Dies ist also das Stats-Array und hat im

215
00:12:17,100 --> 00:12:19,350
‫Moment keine Ergebnisse, okay, also

216
00:12:19,350 --> 00:12:22,630
‫sollten wir diesen Code hier nur dann ausführen,

217
00:12:22,630 --> 00:12:25,500
‫wenn wir tatsächlich etwas im Stats-Array haben.

218
00:12:25,500 --> 00:12:28,653
‫Also machen wir das.

219
00:12:29,810 --> 00:12:30,903
‫Also wenn Statistiken. Länge ist größer

220
00:12:31,760 --> 00:12:36,760
‫als Null, gut, dann tun Sie dies.

221
00:12:40,090 --> 00:12:42,623
‫Und wenn nicht, nun, im Grunde bedeutet dies, dass

222
00:12:45,450 --> 00:12:48,100
‫alle unsere Bewertungen weg sind, nun, dann möchten wir

223
00:12:48,100 --> 00:12:50,260
‫im Grunde zu den Standardeinstellungen zurückkehren.

224
00:12:50,260 --> 00:12:54,280
‫Also werden wir es dann auf die

225
00:12:54,280 --> 00:12:58,780
‫Menge Null und den Durchschnitt von 4 setzen. 5, die sich daran erinnern, ist die Standardeinstellung, wenn überhaupt keine

226
00:12:58,780 --> 00:13:02,030
‫Bewertungen vorhanden sind.

227
00:13:02,030 --> 00:13:04,943
‫Also lasst uns schnell eine neue Rezension erstellen, und

228
00:13:08,540 --> 00:13:10,823
‫es kann diese sein, in Ordnung, also

229
00:13:12,200 --> 00:13:13,150
‫haben wir

230
00:13:15,880 --> 00:13:19,400
‫wieder eine Bewertung und löschen sie jetzt sofort, nur um

231
00:13:19,400 --> 00:13:20,780
‫den Code, den

232
00:13:20,780 --> 00:13:24,963
‫wir gerade geschrieben haben, zu testen, nur um sie hier zu sehen

233
00:13:28,080 --> 00:13:30,310
‫auch, also eine Bewertung, durchschnittlich fünf.

234
00:13:30,310 --> 00:13:32,573
‫Und jetzt, wenn wir es löschen,

235
00:13:33,850 --> 00:13:36,113
‫erhalten wir keinen Fehler mehr.

236
00:13:38,910 --> 00:13:41,790
‫Und auf unserer Tour sind wir

237
00:13:41,790 --> 00:13:45,630
‫wieder bei Null und einem Standardwert von 4. 5.

238
00:13:45,630 --> 00:13:48,450
‫In Ordnung, in Ordnung, in Ordnung, perfekt.

239
00:13:48,450 --> 00:13:51,560
‫Lassen Sie uns hier noch einmal

240
00:13:51,560 --> 00:13:54,920
‫kurz zusammenfassen, was wir gerade getan haben.

241
00:13:54,920 --> 00:13:57,090
‫Um diese Funktion hier auch beim

242
00:13:57,090 --> 00:13:59,970
‫Update und beim Löschen ausführen zu können, müssen wir

243
00:13:59,970 --> 00:14:02,320
‫also tatsächlich die Abfrage-Middleware verwenden, die uns

244
00:14:02,320 --> 00:14:04,590
‫Mongoose für diese Situationen zur Verfügung stellt.

245
00:14:04,590 --> 00:14:07,110
‫Okay, wir haben also keine praktische

246
00:14:07,110 --> 00:14:11,230
‫Dokumenten-Middleware, die für diese Funktionen funktioniert, sondern wir müssen stattdessen

247
00:14:11,230 --> 00:14:13,140
‫die Abfrage-Middleware verwenden,

248
00:14:13,140 --> 00:14:15,880
‫und in dieser haben wir keinen

249
00:14:15,880 --> 00:14:18,660
‫direkten Zugriff auf das aktuelle Dokument.

250
00:14:18,660 --> 00:14:20,090
‫Also müssen wir das

251
00:14:20,090 --> 00:14:21,540
‫umgehen, indem wir hier findOne

252
00:14:21,540 --> 00:14:24,870
‫verwenden und so im Grunde das aktuelle Dokument aus der Datenbank abrufen.

253
00:14:24,870 --> 00:14:27,340
‫Wir speichern es dann in

254
00:14:27,340 --> 00:14:30,450
‫der aktuellen Abfragevariablen, und das war's, und dadurch

255
00:14:30,450 --> 00:14:32,950
‫erhalten wir in der Post-Middleware Zugriff darauf.

256
00:14:32,950 --> 00:14:36,480
‫Und erst in der Post-Middleware berechnen wir dann tatsächlich

257
00:14:36,480 --> 00:14:38,610
‫die Statistiken für Reviews.

258
00:14:38,610 --> 00:14:42,500
‫Und denken Sie daran, dass wir es so machen, denn wenn

259
00:14:42,500 --> 00:14:44,370
‫wir es in dieser

260
00:14:44,370 --> 00:14:47,380
‫Middleware-Funktion richtig gemacht hätten, wären die zugrunde liegenden

261
00:14:47,380 --> 00:14:50,100
‫Daten zu diesem Zeitpunkt nicht aktualisiert worden

262
00:14:50,100 --> 00:14:53,150
‫und die berechneten Statistiken wären daher nicht wirklich aktuell.

263
00:14:53,150 --> 00:14:55,150
‫Und deshalb haben wir hier im Grunde

264
00:14:55,150 --> 00:14:56,540
‫diesen zweistufigen Prozess verwendet.

265
00:14:56,540 --> 00:14:58,963
‫Lassen Sie uns nun diese Konsole loswerden. logge dich hier ein, da wir jetzt fertig sind, und

266
00:15:00,020 --> 00:15:02,220
‫auch von dieser Statistik.

267
00:15:03,130 --> 00:15:06,883
‫So, ich hoffe, es hat Ihnen Spaß gemacht

268
00:15:08,270 --> 00:15:11,390
‫und ist nicht zu überwältigend.

269
00:15:11,390 --> 00:15:13,890
‫Ich habe diese Übung speziell entwickelt, damit wir

270
00:15:13,890 --> 00:15:16,390
‫ein reales Geschäftsproblem lösen können, indem wir

271
00:15:16,390 --> 00:15:19,270
‫alle Werkzeuge verwenden, die uns Mongoose zur Verfügung stellt.

272
00:15:19,270 --> 00:15:22,150
‫Und damit hoffe ich, dass Sie ein bisschen besser gelernt

273
00:15:22,150 --> 00:15:24,500
‫haben, wie Sie mit all diesen verschiedenen Middlewares

274
00:15:24,500 --> 00:15:26,980
‫in verschiedenen Situationen arbeiten können, wann immer es

275
00:15:26,980 --> 00:15:29,220
‫in einer realen Situation erforderlich ist.

276
00:15:29,220 --> 00:15:31,640
‫Also, tolle Arbeit, dass du diesen ziemlich anspruchsvollen

277
00:15:31,640 --> 00:15:35,700
‫Vortrag beendet hast und an diesem Punkt des Kurses immer noch bei mir bist.

278
00:15:35,700 --> 00:15:39,030
‫Es ist wirklich gut für mich, das zu sehen, also bin

279
00:15:39,030 --> 00:15:40,594
‫ich wirklich glücklich darüber.

280
00:15:40,594 --> 00:15:43,500
‫Aber wie auch immer, in diesem Abschnitt kommen noch

281
00:15:43,500 --> 00:15:46,780
‫einige weitere großartige Inhalte, und so gehen wir jetzt gemeinsam

282
00:15:46,780 --> 00:15:48,290
‫weiter zum nächsten Video.

