﻿1
00:00:01,090 --> 00:00:03,630
‫Kursleiter: Lassen Sie uns nun die Ergebnissortierung implementieren.

2
00:00:03,630 --> 00:00:07,000
‫Damit unsere Benutzer die Ergebnisse nach einem bestimmten

3
00:00:07,000 --> 00:00:08,763
‫Feld sortieren können.

4
00:00:10,180 --> 00:00:14,033
‫Sehen wir uns nun alle unsere Ergebnisse hier vorerst an.

5
00:00:14,970 --> 00:00:17,930
‫In Ordnung, und nehmen wir an, dass wir

6
00:00:17,930 --> 00:00:21,129
‫diese Ergebnisse tatsächlich sortieren möchten, beispielsweise nach dem Preis.

7
00:00:21,129 --> 00:00:24,560
‫Okay, also beginnen Sie mit dem niedrigsten Preis und steigen

8
00:00:24,560 --> 00:00:27,300
‫Sie dann bis zum höchsten Preis auf.

9
00:00:27,300 --> 00:00:29,462
‫Alles klar, wir haben also alle möglichen Preise.

10
00:00:29,462 --> 00:00:33,830
‫397, 497, 1197, 1497, 997.

11
00:00:36,330 --> 00:00:38,950
‫Wir haben sogar fast 3.000 hier.

12
00:00:38,950 --> 00:00:42,570
‫Dann 1497 und so sind sie nicht wirklich in Ordnung, und

13
00:00:42,570 --> 00:00:47,450
‫lassen Sie uns dem Benutzer erlauben, diese Ergebnisse im Wesentlichen basierend auf einem Feld

14
00:00:47,450 --> 00:00:50,963
‫zu sortieren, das mit der Abfragezeichenfolge übergeben werden kann.

15
00:00:53,690 --> 00:00:58,663
‫Nehmen wir an, wir möchten nach Preis sortieren.

16
00:00:59,860 --> 00:01:00,890
‫Gut.

17
00:01:00,890 --> 00:01:03,480
‫Wenn wir das also jetzt ausführen, passiert natürlich

18
00:01:03,480 --> 00:01:05,860
‫nichts, es werden immer noch genau

19
00:01:05,860 --> 00:01:09,900
‫die gleichen neun Ergebnisse und in der gleichen Reihenfolge angezeigt, da wir

20
00:01:09,900 --> 00:01:13,710
‫zuvor in der letzten Vorlesung im Wesentlichen dieses Sortierfeld herausgefiltert haben.

21
00:01:13,710 --> 00:01:14,543
‫Rechts?

22
00:01:14,543 --> 00:01:16,883
‫Und so lassen Sie uns jetzt tatsächlich weitermachen und es verwenden.

23
00:01:18,020 --> 00:01:19,120
‫Gut?

24
00:01:19,120 --> 00:01:22,650
‫Erinnern Sie sich also hier daran, wie wir das Abfrageobjekt

25
00:01:22,650 --> 00:01:25,430
‫erstellt und dann das Sortierfeld hier ausgeschlossen

26
00:01:25,430 --> 00:01:28,840
‫haben, damit es unsere Filterung nicht verunreinigt hat, richtig?

27
00:01:28,840 --> 00:01:33,073
‫Aber jetzt brauchen wir es tatsächlich und deshalb verwenden wir es jetzt.

28
00:01:34,150 --> 00:01:38,040
‫Die dritte Funktion hier ist also das Sortieren.

29
00:01:38,040 --> 00:01:39,790
‫Oder eigentlich, das ist

30
00:01:39,790 --> 00:01:43,977
‫der zweite, also nennen wir diesen einfach 1A und 1B.

31
00:01:43,977 --> 00:01:44,963
‫Gut?

32
00:01:46,400 --> 00:01:51,400
‫Nehmen wir also an, dass sort req, wenn es tatsächlich eine

33
00:01:53,750 --> 00:01:56,980
‫Sortierung gibt. Anfrage. Sortieren.

34
00:01:56,980 --> 00:01:58,913
‫Okay, und du siehst es hier unten.

35
00:01:59,750 --> 00:02:04,210
‫Jetzt ist es wegen diesem Fehler hier aber trotzdem weg.

36
00:02:04,210 --> 00:02:06,427
‫Von unserer letzten Anfrage

37
00:02:06,427 --> 00:02:09,290
‫bekamen wir natürlich ein Abfrageobjekt hier

38
00:02:09,290 --> 00:02:12,840
‫und da hatten wir die sort-Eigenschaft, in Ordnung?

39
00:02:12,840 --> 00:02:15,010
‫Und wenn es eine sort-Eigenschaft

40
00:02:15,010 --> 00:02:16,780
‫gibt, bedeutet dies,

41
00:02:16,780 --> 00:02:20,935
‫dass wir die Ergebnisse tatsächlich nach dem Wert sortieren möchten.

42
00:02:20,935 --> 00:02:23,400
‫Eine schnelle Sache, die wir jetzt

43
00:02:23,400 --> 00:02:26,040
‫tun müssen, ist, diese Abfrage der Variablen

44
00:02:26,040 --> 00:02:29,630
‫hier von einer Konstanten in eine normale Variable zu ändern.

45
00:02:29,630 --> 00:02:31,420
‫Also lass, okay?

46
00:02:31,420 --> 00:02:34,284
‫Denn jetzt wollen wir eigentlich etwas mit

47
00:02:34,284 --> 00:02:36,000
‫dieser Abfrage verketten.

48
00:02:36,000 --> 00:02:39,600
‫Die neue Abfrage lautet also query. Sortieren.

49
00:02:42,410 --> 00:02:46,580
‫Und wir wollen es nach req sortieren. Anfrage. Sortieren.

50
00:02:48,607 --> 00:02:52,060
‫In Ordnung, denn das ist der Wert des Feldes, also

51
00:02:52,060 --> 00:02:53,760
‫in diesem Fall der Preis,

52
00:02:53,760 --> 00:02:56,270
‫und Mongoose sortiert das Ergebnis dann automatisch

53
00:02:56,270 --> 00:02:57,910
‫nach dem Preis.

54
00:02:57,910 --> 00:02:59,640
‫Und falls Sie sich jetzt fragen,

55
00:02:59,640 --> 00:03:02,600
‫warum das so funktioniert, warum wir das hier gemacht haben, erinnern

56
00:03:02,600 --> 00:03:05,910
‫Sie sich einfach daran, worüber wir in den letzten Vorträgen gesprochen haben.

57
00:03:05,910 --> 00:03:08,910
‫Denken Sie also daran, wie diese Tour. find here

58
00:03:08,910 --> 00:03:11,030
‫wird eine Abfrage zurückgeben, oder?

59
00:03:11,030 --> 00:03:13,320
‫Und so haben wir dieses Abfrageobjekt hier

60
00:03:13,320 --> 00:03:15,320
‫in dieser Variablen gespeichert, damit

61
00:03:15,320 --> 00:03:17,800
‫wir später weitere Methoden daran verketten können.

62
00:03:17,800 --> 00:03:19,990
‫Also mehr dieser Methoden, die für

63
00:03:19,990 --> 00:03:23,150
‫alle Dokumente verfügbar sind, die über die Abfrageklasse erstellt wurden.

64
00:03:23,150 --> 00:03:24,780
‫Okay, erinnerst du dich daran?

65
00:03:24,780 --> 00:03:27,620
‫Ich glaube, darüber haben wir vor zwei Vorträgen ausführlich gesprochen.

66
00:03:27,620 --> 00:03:31,180
‫Falls euch das also immer noch etwas verwirrend ist,

67
00:03:31,180 --> 00:03:32,560
‫dann geht einfach

68
00:03:32,560 --> 00:03:36,450
‫dorthin zurück oder schaut euch auch die Dokumentation an, in Ordnung?

69
00:03:36,450 --> 00:03:40,840
‫Lassen Sie uns das jetzt tatsächlich testen.

70
00:03:40,840 --> 00:03:43,500
‫Die Sortierung ist also immer noch auf den Preis eingestellt.

71
00:03:43,500 --> 00:03:45,402
‫Also schicke ich es jetzt.

72
00:03:45,402 --> 00:03:48,210
‫Schauen wir uns das Ergebnis an.

73
00:03:48,210 --> 00:03:50,250
‫Und zwar starten wir mit dem niedrigsten Preis, aber

74
00:03:50,250 --> 00:03:52,270
‫ich glaube, den hatten wir schon früher.

75
00:03:52,270 --> 00:03:57,270
‫Wir beginnen also mit 397, dann 497, dann 997, 1197, 1497,

76
00:03:59,310 --> 00:04:04,020
‫und Sie sehen, dass die Preise tatsächlich weiter steigen.

77
00:04:04,020 --> 00:04:07,523
‫Also 1997, 2997.

78
00:04:08,570 --> 00:04:11,163
‫Und so ja, in der Tat, sie sind jetzt sortiert.

79
00:04:12,830 --> 00:04:13,663
‫Okay?

80
00:04:13,663 --> 00:04:16,610
‫Also haben wir sie aufsteigend nach dem Preis sortiert.

81
00:04:16,610 --> 00:04:19,430
‫Wir können sie aber auch absteigend sortieren.

82
00:04:19,430 --> 00:04:20,810
‫Das ist ganz einfach.

83
00:04:20,810 --> 00:04:24,090
‫Alles, was wir tun müssen, ist hier als Minus zu setzen.

84
00:04:24,090 --> 00:04:27,200
‫Minuspreis und Mongoose werden sie dann automatisch in

85
00:04:27,200 --> 00:04:29,040
‫die andere Reihenfolge sortieren.

86
00:04:29,040 --> 00:04:31,221
‫Also in absteigender Reihenfolge.

87
00:04:31,221 --> 00:04:34,220
‫Lassen Sie uns das also auch testen.

88
00:04:34,220 --> 00:04:36,750
‫Und so sollten wir jetzt mit, ja genau,

89
00:04:36,750 --> 00:04:38,150
‫mit diesem beginnen.

90
00:04:38,150 --> 00:04:40,190
‫Der erste ist jetzt

91
00:04:40,190 --> 00:04:43,960
‫der höchste und der letzte ist der 397er.

92
00:04:43,960 --> 00:04:44,930
‫Cool.

93
00:04:44,930 --> 00:04:48,030
‫Aber wir können tatsächlich noch einen Schritt weiter gehen,

94
00:04:48,030 --> 00:04:51,500
‫denn wir haben hier viele Koffer, die den gleichen Preis haben.

95
00:04:51,500 --> 00:04:54,390
‫Aber wie werden diese Ergebnisse mit dem gleichen

96
00:04:54,390 --> 00:04:56,190
‫Preis dann darin geordnet?

97
00:04:56,190 --> 00:04:58,468
‫Nehmen wir an, wir haben dieses mit diesem Preis

98
00:04:58,468 --> 00:05:00,700
‫und dann dieses mit dem gleichen Preis.

99
00:05:00,700 --> 00:05:05,330
‫Warum erscheint dieser vor dem zweiten?

100
00:05:05,330 --> 00:05:08,050
‫Das gleiche mit diesem hier vielleicht,

101
00:05:08,050 --> 00:05:09,720
‫oh eigentlich nicht.

102
00:05:09,720 --> 00:05:12,496
‫Dieser ist also der einzige mit 1997.

103
00:05:12,496 --> 00:05:16,650
‫Aber dann haben wir hier wieder diese beiden zum gleichen Preis.

104
00:05:16,650 --> 00:05:21,563
‫Wir haben, okay, sie sind alle unterschiedlich.

105
00:05:23,360 --> 00:05:25,150
‫Okay, das sind alle unterschiedlich.

106
00:05:25,150 --> 00:05:27,610
‫Aber wir wollen sie im Grunde

107
00:05:27,610 --> 00:05:29,900
‫nach einem zweiten Kriterium einordnen.

108
00:05:29,900 --> 00:05:31,790
‫Falls es also einen Gleichstand gibt, möchten

109
00:05:31,790 --> 00:05:33,570
‫wir ein zweites Feld haben,

110
00:05:33,570 --> 00:05:36,550
‫nach dem wir dann sortieren können, wo das erste gleich ist.

111
00:05:36,550 --> 00:05:38,230
‫Also in diesem Fall der Preis.

112
00:05:38,230 --> 00:05:40,500
‫Bei Mongoose ist das ganz einfach, und

113
00:05:40,500 --> 00:05:43,400
‫das zeige ich dir hier zum Beispiel als Kommentar.

114
00:05:44,450 --> 00:05:47,510
‫In Mongoose würden wir also einfach Sortieren sagen

115
00:05:49,650 --> 00:05:52,980
‫und jetzt haben wir den Preis, also haben wir

116
00:05:52,980 --> 00:05:54,430
‫es einfach so,

117
00:05:54,430 --> 00:05:56,340
‫aber dann müssen wir in

118
00:05:56,340 --> 00:05:59,690
‫Mongoose nur noch einen weiteren Feldnamen zum String hinzufügen.

119
00:05:59,690 --> 00:06:02,563
‫Also zum Beispiel Bewertungsdurchschnitt.

120
00:06:03,451 --> 00:06:06,130
‫Oder ich denke, es sind Bewertungen.

121
00:06:06,130 --> 00:06:10,460
‫Okay, und so wollen wir dieses Feld nun auch hier an unsere

122
00:06:10,460 --> 00:06:11,363
‫Sorte weitergeben.

123
00:06:12,640 --> 00:06:13,473
‫Okay?

124
00:06:13,473 --> 00:06:15,900
‫Jetzt können wir hier in der URL kein Leerzeichen

125
00:06:15,900 --> 00:06:17,933
‫lassen und fügen stattdessen ein Komma hinzu.

126
00:06:18,880 --> 00:06:19,713
‫Okay?

127
00:06:19,713 --> 00:06:22,080
‫Wir wollen also zuerst nach

128
00:06:22,080 --> 00:06:25,862
‫Preis und dann als zweites Kriterium auch nach Bewertungsdurchschnitt sortieren.

129
00:06:25,862 --> 00:06:26,757
‫Okay?

130
00:06:26,757 --> 00:06:28,440
‫Also müssen wir

131
00:06:28,440 --> 00:06:33,060
‫jetzt nur noch dieses Komma hier durch ein Leerzeichen ersetzen.

132
00:06:33,060 --> 00:06:33,893
‫Gut?

133
00:06:33,893 --> 00:06:36,004
‫Und natürlich könnten wir noch

134
00:06:36,004 --> 00:06:38,460
‫mehr Felder haben, nach denen wir sortieren.

135
00:06:38,460 --> 00:06:39,293
‫Okay?

136
00:06:39,293 --> 00:06:40,900
‫Aber lassen wir es

137
00:06:40,900 --> 00:06:43,813
‫vorerst so und implementieren es ganz schnell in unseren Code.

138
00:06:44,820 --> 00:06:45,810
‫Gut?

139
00:06:45,810 --> 00:06:48,543
‫Und lassen Sie mich hier eine neue Variable erstellen.

140
00:06:49,870 --> 00:06:51,303
‫Nennen wir es Sortieren nach.

141
00:06:53,014 --> 00:06:57,410
‫Und so haben wir req. Anfrage. sortieren und was wir

142
00:06:57,410 --> 00:07:01,020
‫jetzt tun werden, ist, es durch das Komma zu trennen.

143
00:07:01,020 --> 00:07:05,867
‫Teilen Sie also den String durch das Komma auf, und so wird

144
00:07:05,867 --> 00:07:08,220
‫dann ein Array aller Strings

145
00:07:08,220 --> 00:07:09,720
‫zurückgegeben, also aller

146
00:07:09,720 --> 00:07:13,060
‫Feldnamen, und dann müssen wir ihn nur noch

147
00:07:13,060 --> 00:07:17,453
‫mit Join zusammenfügen, und als Join-String verwenden wir ein Leerzeichen.

148
00:07:18,490 --> 00:07:19,980
‫Gut?

149
00:07:19,980 --> 00:07:23,223
‫Und nur um sicherzustellen, dass es richtig ist.

150
00:07:24,280 --> 00:07:29,280
‫Konsole. log, sortieren nach, und dann

151
00:07:29,363 --> 00:07:32,423
‫wollen wir hier natürlich diese sortieren-nach-Variable verwenden.

152
00:07:34,280 --> 00:07:35,240
‫Okay?

153
00:07:35,240 --> 00:07:36,690
‫Schauen wir uns das also an.

154
00:07:40,450 --> 00:07:41,633
‫Und.

155
00:07:43,350 --> 00:07:48,350
‫Also 4. 7 hier und der andere hat auch 4. 7, in Ordnung?

156
00:07:48,990 --> 00:07:52,130
‫Lassen Sie uns also weitermachen und unsere API verwenden,

157
00:07:52,130 --> 00:07:54,360
‫um diesen Bewertungsdurchschnitt hier zu ändern.

158
00:07:54,360 --> 00:07:55,193
‫Okay?

159
00:07:55,193 --> 00:07:56,740
‫Also nur als Spaßexperiment,

160
00:07:56,740 --> 00:08:00,483
‫lasst uns diese ID hier kopieren, dann die Tour aktualisieren, und so

161
00:08:02,060 --> 00:08:04,440
‫kommen wir hier zum Körper, und deshalb möchte

162
00:08:04,440 --> 00:08:08,367
‫ich den Bewertungsdurchschnitt auf 4 aktualisieren. 9.

163
00:08:13,465 --> 00:08:14,380
‫Okay?

164
00:08:14,380 --> 00:08:18,513
‫Lassen Sie uns das senden, und tatsächlich sehen Sie, dass es aktualisiert wurde.

165
00:08:21,120 --> 00:08:22,940
‫Und so ändern wir das jetzt noch einmal,

166
00:08:22,940 --> 00:08:24,700
‫oder versuchen wir es tatsächlich noch einmal.

167
00:08:24,700 --> 00:08:27,534
‫Und jetzt sehen Sie, dass der erste noch 4 hat. 7 und dieser

168
00:08:27,534 --> 00:08:30,510
‫hier hat jetzt 4. 9.

169
00:08:30,510 --> 00:08:34,476
‫Und so werden sie nun mit aufsteigender Wertung geordnet.

170
00:08:34,476 --> 00:08:35,600
‫Rechts?

171
00:08:35,600 --> 00:08:38,335
‫Und natürlich könnten wir hier ein Minus

172
00:08:38,335 --> 00:08:41,653
‫setzen und dann sollten sie die Position wechseln,

173
00:08:41,653 --> 00:08:45,970
‫also die mit 4. 9 sollte zuerst erscheinen.

174
00:08:45,970 --> 00:08:47,960
‫Versuchen wir das auch.

175
00:08:47,960 --> 00:08:50,590
‫Und ja, tatsächlich.

176
00:08:50,590 --> 00:08:53,010
‫Jetzt ist diese Tour für Sportliebhaber

177
00:08:53,010 --> 00:08:55,230
‫diejenige, die zuerst erscheint.

178
00:08:55,230 --> 00:08:56,710
‫Alles klar, großartig.

179
00:08:56,710 --> 00:08:58,800
‫Es sieht also so aus, als ob es funktioniert.

180
00:08:58,800 --> 00:09:01,270
‫Schauen wir uns hier unsere Ergebnisse an.

181
00:09:01,270 --> 00:09:02,670
‫Und ja, tatsächlich.

182
00:09:02,670 --> 00:09:04,970
‫Und schauen wir uns einfach an, was wir hier an

183
00:09:04,970 --> 00:09:06,190
‫der Konsole protokolliert haben.

184
00:09:06,190 --> 00:09:10,453
‫Also, ja, das ist unsere Sortierung nach Variable, die ja.

185
00:09:11,790 --> 00:09:14,718
‫Welche Art von sieht ähnlich aus wie das, was wir hier haben.

186
00:09:14,718 --> 00:09:17,560
‫Und das war das Ziel, diese Variable zu erstellen.

187
00:09:17,560 --> 00:09:19,410
‫Super, das funktioniert jetzt.

188
00:09:19,410 --> 00:09:23,263
‫Lassen Sie uns diese Konsole und auch diese hier loswerden.

189
00:09:24,430 --> 00:09:26,180
‫Und alles klar.

190
00:09:26,180 --> 00:09:27,140
‫Und um hier

191
00:09:27,140 --> 00:09:29,910
‫fertig zu werden, fügen wir tatsächlich einen Standard hinzu.

192
00:09:29,910 --> 00:09:33,565
‫Und das tun wir, indem wir hier einfach einen else-Block hinzufügen.

193
00:09:33,565 --> 00:09:36,580
‫Falls der Benutzer also kein Sortierfeld

194
00:09:36,580 --> 00:09:39,770
‫in der URL-Abfragezeichenfolge angibt, fügen wir der

195
00:09:39,770 --> 00:09:42,583
‫Abfrage dennoch eine Sortierung hinzu.

196
00:09:43,850 --> 00:09:47,300
‫Also abfragen. sortieren und wir werden

197
00:09:47,300 --> 00:09:49,990
‫dann nach dem erstellten Add-Feld sortieren, in Ordnung?

198
00:09:49,990 --> 00:09:51,830
‫Und zwar in absteigender

199
00:09:51,830 --> 00:09:54,330
‫Reihenfolge, damit die neuesten zuerst erscheinen.

200
00:09:54,330 --> 00:09:59,070
‫Also Minus bei erstellt.

201
00:09:59,070 --> 00:10:00,050
‫Gut?

202
00:10:00,050 --> 00:10:01,730
‫Geben Sie dies ab.

203
00:10:01,730 --> 00:10:05,240
‫Also ja, ich denke so, wir sind fertig.

204
00:10:05,240 --> 00:10:09,140
‫Lassen Sie uns diese Option auch hier einfach deaktivieren.

205
00:10:09,140 --> 00:10:12,503
‫Und so sind wir jetzt einfach wieder bei unserer

206
00:10:13,390 --> 00:10:15,100
‫regulären URL ohne Abfragezeichenfolgen.

207
00:10:15,100 --> 00:10:16,570
‫Und so schauen wir

208
00:10:16,570 --> 00:10:19,780
‫mal, ob dies nun tatsächlich vom Angelegten bestellt wird.

209
00:10:19,780 --> 00:10:22,713
‫Dieser hier endet also in 59 Sekunden und 30.

210
00:10:23,730 --> 00:10:25,230
‫5930 auch.

211
00:10:25,230 --> 00:10:27,363
‫Und ja.

212
00:10:27,363 --> 00:10:29,670
‫Sie wurden also alle im selben

213
00:10:29,670 --> 00:10:32,990
‫Moment erstellt, weil wir sie alle gleichzeitig importiert haben.

214
00:10:32,990 --> 00:10:33,823
‫Gut?

215
00:10:33,823 --> 00:10:36,250
‫In diesem Fall können wir die Wirkung

216
00:10:36,250 --> 00:10:38,920
‫dieses Codestücks, das wir hier gerade hinzugefügt haben,

217
00:10:38,920 --> 00:10:41,810
‫nicht wirklich sehen, aber falls diese Dokumente zu

218
00:10:41,810 --> 00:10:44,130
‫unterschiedlichen Zeitpunkten hinzugefügt wurden, würden

219
00:10:44,130 --> 00:10:46,901
‫sie jetzt nach dem Datum ihrer Erstellung geordnet.

220
00:10:46,901 --> 00:10:48,430
‫Gut?

221
00:10:48,430 --> 00:10:50,450
‫Das war's also zum Sortieren.

222
00:10:50,450 --> 00:10:53,320
‫Als nächstes werden wir über die Begrenzung der Felder sprechen, die wir

223
00:10:53,320 --> 00:10:54,763
‫in unseren Ergebnissen haben wollen.

