﻿1
00:00:01,090 --> 00:00:03,630
‫Instructor: Ahora implementemos la clasificación de resultados.

2
00:00:03,630 --> 00:00:07,000
‫Para permitir que nuestros usuarios clasifiquen los resultados en función

3
00:00:07,000 --> 00:00:08,763
‫de un campo determinado.

4
00:00:10,180 --> 00:00:14,033
‫Entonces, ahora echemos un vistazo a todos nuestros resultados aquí por ahora.

5
00:00:14,970 --> 00:00:17,930
‫Muy bien, digamos que realmente

6
00:00:17,930 --> 00:00:21,129
‫queremos ordenar estos resultados, digamos por precio.

7
00:00:21,129 --> 00:00:24,560
‫Bien, entonces comenzando con el precio más bajo y

8
00:00:24,560 --> 00:00:27,300
‫luego subiendo hasta el precio más alto.

9
00:00:27,300 --> 00:00:29,462
‫De acuerdo, tenemos todo tipo de precios.

10
00:00:29,462 --> 00:00:33,830
‫397, 497, 1197, 1497, 997.

11
00:00:36,330 --> 00:00:38,950
‫Tenemos incluso casi 3000 aquí.

12
00:00:38,950 --> 00:00:42,570
‫Luego, 1497 y, por lo tanto, no están realmente en orden,

13
00:00:42,570 --> 00:00:47,450
‫por lo que permitamos que el usuario básicamente ordene estos resultados en función de un

14
00:00:47,450 --> 00:00:50,963
‫campo que se pueda pasar usando la cadena de consulta.

15
00:00:53,690 --> 00:00:58,663
‫Digamos que queremos ordenar por precio.

16
00:00:59,860 --> 00:01:00,890
‫Está bien.

17
00:01:00,890 --> 00:01:03,480
‫Entonces, si ejecutamos esto ahora, por supuesto,

18
00:01:03,480 --> 00:01:05,860
‫no pasará nada, seguirá mostrando exactamente

19
00:01:05,860 --> 00:01:09,900
‫los mismos nueve resultados y en el mismo orden, porque antes,

20
00:01:09,900 --> 00:01:13,710
‫en la última lección, filtramos básicamente este campo de clasificación.

21
00:01:13,710 --> 00:01:14,543
‫¿Derecha?

22
00:01:14,543 --> 00:01:16,883
‫Y ahora sigamos adelante y usémoslo.

23
00:01:18,020 --> 00:01:19,120
‫¿Está bien?

24
00:01:19,120 --> 00:01:22,650
‫Entonces, recuerde aquí cómo creamos el objeto de consulta

25
00:01:22,650 --> 00:01:25,430
‫y luego excluimos el campo de

26
00:01:25,430 --> 00:01:28,840
‫clasificación aquí, para que no contamine nuestro filtrado, ¿verdad?

27
00:01:28,840 --> 00:01:33,073
‫Pero ahora realmente lo necesitamos, así que usémoslo.

28
00:01:34,150 --> 00:01:38,040
‫Entonces, la tercera característica aquí es la clasificación.

29
00:01:38,040 --> 00:01:39,790
‫O en realidad, bueno,

30
00:01:39,790 --> 00:01:43,977
‫ese es el segundo, así que llamémoslo 1A y 1B.

31
00:01:43,977 --> 00:01:44,963
‫¿Está bien?

32
00:01:46,400 --> 00:01:51,400
‫Entonces, digamos que si realmente hay una clasificación, clasificación

33
00:01:53,750 --> 00:01:56,980
‫req. consulta. clasificar.

34
00:01:56,980 --> 00:01:58,913
‫Está bien, y lo ves aquí abajo.

35
00:01:59,750 --> 00:02:04,210
‫Ahora desapareció debido a este error aquí, pero de todos modos.

36
00:02:04,210 --> 00:02:06,427
‫Desde nuestra última solicitud obtuvimos,

37
00:02:06,427 --> 00:02:09,290
‫por supuesto, hay un objeto de consulta

38
00:02:09,290 --> 00:02:12,840
‫aquí y allí teníamos la propiedad sort, ¿de acuerdo?

39
00:02:12,840 --> 00:02:15,010
‫Y si hay una propiedad

40
00:02:15,010 --> 00:02:16,780
‫de ordenación, bueno, eso

41
00:02:16,780 --> 00:02:20,935
‫significa que queremos ordenar los resultados en función del valor.

42
00:02:20,935 --> 00:02:23,400
‫Ahora, una cosa rápida que

43
00:02:23,400 --> 00:02:26,040
‫debemos hacer es cambiar esta consulta de

44
00:02:26,040 --> 00:02:29,630
‫variable aquí de una constante a una variable normal.

45
00:02:29,630 --> 00:02:31,420
‫Así que vamos, ¿de acuerdo?

46
00:02:31,420 --> 00:02:34,284
‫Porque ahora queremos encadenar algo a

47
00:02:34,284 --> 00:02:36,000
‫esta consulta.

48
00:02:36,000 --> 00:02:39,600
‫Entonces, la nueva consulta será consulta. clasificar.

49
00:02:42,410 --> 00:02:46,580
‫Y queremos ordenarlo por req. consulta. clasificar.

50
00:02:48,607 --> 00:02:52,060
‫Muy bien, porque ese será el valor del campo, así

51
00:02:52,060 --> 00:02:53,760
‫que en este caso el

52
00:02:53,760 --> 00:02:56,270
‫precio, y Mongoose automáticamente clasificará el resultado

53
00:02:56,270 --> 00:02:57,910
‫según el precio.

54
00:02:57,910 --> 00:02:59,640
‫Y ahora, en caso de que

55
00:02:59,640 --> 00:03:02,600
‫se esté preguntando, por qué funciona de esta manera, entonces, por

56
00:03:02,600 --> 00:03:05,910
‫qué hicimos esto aquí, recuerde de lo que hablamos en las últimas conferencias.

57
00:03:05,910 --> 00:03:08,910
‫Entonces, recuerda cómo esta gira. buscar aquí

58
00:03:08,910 --> 00:03:11,030
‫devolverá una consulta, ¿verdad?

59
00:03:11,030 --> 00:03:13,320
‫Y entonces almacenamos ese objeto de consulta

60
00:03:13,320 --> 00:03:15,320
‫aquí en esta variable, para que

61
00:03:15,320 --> 00:03:17,800
‫luego podamos seguir encadenando más métodos a él.

62
00:03:17,800 --> 00:03:19,990
‫Entonces, hay más de estos métodos que están

63
00:03:19,990 --> 00:03:23,150
‫disponibles en todos los documentos creados a través de la clase de consulta.

64
00:03:23,150 --> 00:03:24,780
‫Vale, ¿recuerdas eso?

65
00:03:24,780 --> 00:03:27,620
‫Creo que hablamos de eso en profundidad hace dos conferencias.

66
00:03:27,620 --> 00:03:31,180
‫Entonces, en caso de que esto todavía le resulte un

67
00:03:31,180 --> 00:03:32,560
‫poco confuso, vuelva

68
00:03:32,560 --> 00:03:36,450
‫allí o también puede echar un vistazo a la documentación, ¿de acuerdo?

69
00:03:36,450 --> 00:03:40,840
‫Ahora probemos esto.

70
00:03:40,840 --> 00:03:43,500
‫Por lo tanto, la clasificación todavía está establecida en el precio.

71
00:03:43,500 --> 00:03:45,402
‫Así que lo enviaré ahora.

72
00:03:45,402 --> 00:03:48,210
‫Echemos un vistazo al resultado.

73
00:03:48,210 --> 00:03:50,250
‫Y, de hecho, comenzamos con el precio más bajo,

74
00:03:50,250 --> 00:03:52,270
‫pero creo que ya lo teníamos antes.

75
00:03:52,270 --> 00:03:57,270
‫Entonces comenzamos con 397, luego 497, luego 997, 1197, 1497,

76
00:03:59,310 --> 00:04:04,020
‫y ves que los precios en realidad siguen aumentando.

77
00:04:04,020 --> 00:04:07,523
‫Entonces 1997, 2997.

78
00:04:08,570 --> 00:04:11,163
‫Y sí, de hecho, ahora están ordenados.

79
00:04:12,830 --> 00:04:13,663
‫¿Okey?

80
00:04:13,663 --> 00:04:16,610
‫Así que los clasificamos por precio en orden ascendente.

81
00:04:16,610 --> 00:04:19,430
‫Pero también podemos ordenarlos en orden descendente.

82
00:04:19,430 --> 00:04:20,810
‫Eso es muy simple.

83
00:04:20,810 --> 00:04:24,090
‫Todo lo que tenemos que hacer es establecer el signo menos aquí.

84
00:04:24,090 --> 00:04:27,200
‫Entonces, menos precio y Mongoose los clasificará automáticamente

85
00:04:27,200 --> 00:04:29,040
‫en el otro orden.

86
00:04:29,040 --> 00:04:31,221
‫Entonces, en orden descendente.

87
00:04:31,221 --> 00:04:34,220
‫Así que probemos eso también.

88
00:04:34,220 --> 00:04:36,750
‫Y ahora deberíamos comenzar con, sí,

89
00:04:36,750 --> 00:04:38,150
‫exactamente, con este.

90
00:04:38,150 --> 00:04:40,190
‫Entonces, el primero es

91
00:04:40,190 --> 00:04:43,960
‫ahora el más alto y el último es el 397.

92
00:04:43,960 --> 00:04:44,930
‫Frio.

93
00:04:44,930 --> 00:04:48,030
‫Pero en realidad podemos dar un paso más,

94
00:04:48,030 --> 00:04:51,500
‫porque tenemos muchos casos aquí que tienen el mismo precio.

95
00:04:51,500 --> 00:04:54,390
‫Pero, ¿cómo se ordenan estos resultados con el mismo

96
00:04:54,390 --> 00:04:56,190
‫precio dentro de ellos?

97
00:04:56,190 --> 00:04:58,468
‫Entonces, digamos que tenemos este con este precio

98
00:04:58,468 --> 00:05:00,700
‫y luego este con el mismo precio.

99
00:05:00,700 --> 00:05:05,330
‫Entonces, ¿por qué este aparece antes que el segundo?

100
00:05:05,330 --> 00:05:08,050
‫Lo mismo con este de aquí tal vez,

101
00:05:08,050 --> 00:05:09,720
‫oh, en realidad no.

102
00:05:09,720 --> 00:05:12,496
‫Así que este es el único de 1997.

103
00:05:12,496 --> 00:05:16,650
‫Pero aquí de nuevo tenemos estos dos por el mismo precio.

104
00:05:16,650 --> 00:05:21,563
‫Tenemos, está bien, todos son diferentes.

105
00:05:23,360 --> 00:05:25,150
‫De acuerdo, estos son todos diferentes.

106
00:05:25,150 --> 00:05:27,610
‫Pero queremos clasificarlos, básicamente, según

107
00:05:27,610 --> 00:05:29,900
‫un segundo criterio.

108
00:05:29,900 --> 00:05:31,790
‫Entonces, en caso de que haya un

109
00:05:31,790 --> 00:05:33,570
‫empate, entonces queremos tener un segundo

110
00:05:33,570 --> 00:05:36,550
‫campo por el cual podamos ordenar dónde el primero es el mismo.

111
00:05:36,550 --> 00:05:38,230
‫Entonces en este caso el precio.

112
00:05:38,230 --> 00:05:40,500
‫Así que en Mongoose eso es bastante

113
00:05:40,500 --> 00:05:43,400
‫fácil, y déjame mostrarte eso aquí como un comentario, por ejemplo.

114
00:05:44,450 --> 00:05:47,510
‫Entonces, en Mongoose solo diríamos ordenar y ahora mismo

115
00:05:49,650 --> 00:05:52,980
‫tenemos el precio, así que lo tenemos así, pero

116
00:05:52,980 --> 00:05:54,430
‫luego en Mongoose

117
00:05:54,430 --> 00:05:56,340
‫todo lo que tenemos que

118
00:05:56,340 --> 00:05:59,690
‫hacer es agregar otro nombre de campo a la cadena.

119
00:05:59,690 --> 00:06:02,563
‫Entonces, por ejemplo, calificación promedio.

120
00:06:03,451 --> 00:06:06,130
‫O creo que son calificaciones.

121
00:06:06,130 --> 00:06:10,460
‫Bien, y ahora queremos pasar este campo aquí también a

122
00:06:10,460 --> 00:06:11,363
‫nuestro tipo.

123
00:06:12,640 --> 00:06:13,473
‫¿Okey?

124
00:06:13,473 --> 00:06:15,900
‫Ahora no podemos dejar un espacio aquí en la URL

125
00:06:15,900 --> 00:06:17,933
‫y, en su lugar, agregaremos una coma.

126
00:06:18,880 --> 00:06:19,713
‫¿Okey?

127
00:06:19,713 --> 00:06:22,080
‫Así que queremos ordenar primero por

128
00:06:22,080 --> 00:06:25,862
‫precio y luego como segundo criterio, también por calificación promedio.

129
00:06:25,862 --> 00:06:26,757
‫¿Okey?

130
00:06:26,757 --> 00:06:28,440
‫Y ahora todo lo

131
00:06:28,440 --> 00:06:33,060
‫que tenemos que hacer es básicamente reemplazar esta coma aquí con un espacio.

132
00:06:33,060 --> 00:06:33,893
‫¿Está bien?

133
00:06:33,893 --> 00:06:36,004
‫Y, por supuesto, podríamos tener

134
00:06:36,004 --> 00:06:38,460
‫incluso más campos por los que clasificar.

135
00:06:38,460 --> 00:06:39,293
‫¿Okey?

136
00:06:39,293 --> 00:06:40,900
‫Pero por ahora dejémoslo

137
00:06:40,900 --> 00:06:43,813
‫así e implementémoslo muy rápidamente en nuestro código.

138
00:06:44,820 --> 00:06:45,810
‫¿Está bien?

139
00:06:45,810 --> 00:06:48,543
‫Y de hecho, déjame crear una nueva variable aquí.

140
00:06:49,870 --> 00:06:51,303
‫Llamémoslo ordenar por.

141
00:06:53,014 --> 00:06:57,410
‫Y así tenemos req. consulta. sort y lo

142
00:06:57,410 --> 00:07:01,020
‫que vamos a hacer ahora es dividirlo por comas.

143
00:07:01,020 --> 00:07:05,867
‫Entonces, divida la cadena por la coma, y esto devolverá una matriz de todas

144
00:07:05,867 --> 00:07:08,220
‫las cadenas, por lo que todos los

145
00:07:08,220 --> 00:07:09,720
‫nombres de campo,

146
00:07:09,720 --> 00:07:13,060
‫y luego todo lo que tenemos que hacer es volver

147
00:07:13,060 --> 00:07:17,453
‫a unirlos usando join, y como la cadena de combinación usamos un espacio.

148
00:07:18,490 --> 00:07:19,980
‫¿Está bien?

149
00:07:19,980 --> 00:07:23,223
‫Y solo para asegurarse de que sea correcto.

150
00:07:24,280 --> 00:07:29,280
‫Consola. log, ordenar por, y luego, por

151
00:07:29,363 --> 00:07:32,423
‫supuesto, aquí queremos usar esa ordenación por variable.

152
00:07:34,280 --> 00:07:35,240
‫¿Okey?

153
00:07:35,240 --> 00:07:36,690
‫Así que echemos un vistazo a eso.

154
00:07:40,450 --> 00:07:41,633
‫Y.

155
00:07:43,350 --> 00:07:48,350
‫Entonces 4. 7 aquí, y el otro también tiene 4. 7, ¿de acuerdo?

156
00:07:48,990 --> 00:07:52,130
‫Entonces, sigamos adelante y usemos nuestra API para cambiar

157
00:07:52,130 --> 00:07:54,360
‫este promedio de calificaciones aquí.

158
00:07:54,360 --> 00:07:55,193
‫¿Okey?

159
00:07:55,193 --> 00:07:56,740
‫Entonces, solo como un

160
00:07:56,740 --> 00:08:00,483
‫experimento divertido, copiemos esta ID aquí, luego actualice el recorrido, y vengamos

161
00:08:02,060 --> 00:08:04,440
‫aquí al cuerpo, por lo que quiero actualizar

162
00:08:04,440 --> 00:08:08,367
‫el promedio de calificaciones a 4. 9.

163
00:08:13,465 --> 00:08:14,380
‫¿Okey?

164
00:08:14,380 --> 00:08:18,513
‫Enviemos eso, y de hecho, verá que se actualizó.

165
00:08:21,120 --> 00:08:22,940
‫Y ahora cambiemos eso de nuevo, o

166
00:08:22,940 --> 00:08:24,700
‫intentémoslo de nuevo en realidad.

167
00:08:24,700 --> 00:08:27,534
‫Y ahora ves que el primero todavía tiene 4. 7 y este

168
00:08:27,534 --> 00:08:30,510
‫de aquí ahora tiene 4. 9.

169
00:08:30,510 --> 00:08:34,476
‫Y ahora están ordenados con una calificación ascendente.

170
00:08:34,476 --> 00:08:35,600
‫¿Derecha?

171
00:08:35,600 --> 00:08:38,335
‫Y, por supuesto, podríamos poner un menos

172
00:08:38,335 --> 00:08:41,653
‫aquí y entonces deberían cambiar de posición, es decir,

173
00:08:41,653 --> 00:08:45,970
‫el que tiene 4. 9 debería aparecer primero.

174
00:08:45,970 --> 00:08:47,960
‫Intentémoslo también.

175
00:08:47,960 --> 00:08:50,590
‫Y sí, de hecho.

176
00:08:50,590 --> 00:08:53,010
‫Así que ahora este, el tour de los amantes

177
00:08:53,010 --> 00:08:55,230
‫del deporte, es el que aparece primero.

178
00:08:55,230 --> 00:08:56,710
‫Está bien, genial.

179
00:08:56,710 --> 00:08:58,800
‫Entonces parece que está funcionando.

180
00:08:58,800 --> 00:09:01,270
‫Echemos un vistazo a nuestros resultados aquí.

181
00:09:01,270 --> 00:09:02,670
‫Y sí, de hecho.

182
00:09:02,670 --> 00:09:04,970
‫Y echemos un vistazo a lo que registramos

183
00:09:04,970 --> 00:09:06,190
‫aquí en la consola.

184
00:09:06,190 --> 00:09:10,453
‫Y así, sí, esta es nuestra clasificación por variable, que sí.

185
00:09:11,790 --> 00:09:14,718
‫Qué tipo de parece similar a lo que tenemos aquí.

186
00:09:14,718 --> 00:09:17,560
‫Y ese fue el objetivo de crear esta variable.

187
00:09:17,560 --> 00:09:19,410
‫Genial, eso ahora está funcionando.

188
00:09:19,410 --> 00:09:23,263
‫Deshagámonos de esta consola y de esta aquí también.

189
00:09:24,430 --> 00:09:26,180
‫Y esta bien.

190
00:09:26,180 --> 00:09:27,140
‫Y

191
00:09:27,140 --> 00:09:29,910
‫para terminar aquí, agreguemos uno predeterminado.

192
00:09:29,910 --> 00:09:33,565
‫Y lo hacemos simplemente agregando un bloque else aquí.

193
00:09:33,565 --> 00:09:36,580
‫Entonces, en caso de que el usuario no especifique ningún

194
00:09:36,580 --> 00:09:39,770
‫campo de clasificación en la cadena de consulta de la URL,

195
00:09:39,770 --> 00:09:42,583
‫de todos modos agregaremos una clasificación a la consulta.

196
00:09:43,850 --> 00:09:47,300
‫Entonces consulta. sort y luego ordenaremos

197
00:09:47,300 --> 00:09:49,990
‫por el campo de agregar creado, ¿de acuerdo?

198
00:09:49,990 --> 00:09:51,830
‫Y de hecho en orden

199
00:09:51,830 --> 00:09:54,330
‫descendente, de modo que los más nuevos aparezcan primero.

200
00:09:54,330 --> 00:09:59,070
‫Entonces menos creado en.

201
00:09:59,070 --> 00:10:00,050
‫¿Está bien?

202
00:10:00,050 --> 00:10:01,730
‫Dale una oportunidad a esto.

203
00:10:01,730 --> 00:10:05,240
‫Y sí, pienso así, hemos terminado.

204
00:10:05,240 --> 00:10:09,140
‫Desactivemos esta opción aquí también.

205
00:10:09,140 --> 00:10:12,503
‫Y ahora volvemos a nuestra URL normal sin

206
00:10:13,390 --> 00:10:15,100
‫cadenas de consulta.

207
00:10:15,100 --> 00:10:16,570
‫Entonces, echemos un vistazo

208
00:10:16,570 --> 00:10:19,780
‫si esto ahora está realmente ordenado por el creado en.

209
00:10:19,780 --> 00:10:22,713
‫Así que este de aquí termina en 59 segundos y 30.

210
00:10:23,730 --> 00:10:25,230
‫5930 también.

211
00:10:25,230 --> 00:10:27,363
‫Y si.

212
00:10:27,363 --> 00:10:29,670
‫Así que todos fueron creados en

213
00:10:29,670 --> 00:10:32,990
‫el mismo momento exacto, porque los importamos todos al mismo tiempo.

214
00:10:32,990 --> 00:10:33,823
‫¿Está bien?

215
00:10:33,823 --> 00:10:36,250
‫Entonces, en este caso, realmente no podemos ver

216
00:10:36,250 --> 00:10:38,920
‫el efecto de este fragmento de código que acabamos

217
00:10:38,920 --> 00:10:41,810
‫de agregar aquí, pero en caso de que estos documentos

218
00:10:41,810 --> 00:10:44,130
‫se agreguen en diferentes momentos, ahora

219
00:10:44,130 --> 00:10:46,901
‫se ordenarían por la fecha en que fueron creados.

220
00:10:46,901 --> 00:10:48,430
‫¿Está bien?

221
00:10:48,430 --> 00:10:50,450
‫Así que eso es todo para clasificar.

222
00:10:50,450 --> 00:10:53,320
‫A continuación, hablaremos de limitar los campos que

223
00:10:53,320 --> 00:10:54,763
‫queremos en nuestros resultados.

