﻿1
00:00:01,110 --> 00:00:02,910
‫Instructor: Entonces, esta es la segunda

2
00:00:02,910 --> 00:00:05,230
‫parte del cálculo de las estadísticas de revisión.

3
00:00:05,230 --> 00:00:08,873
‫Esta vez, para cuando se actualiza o elimina una revisión.

4
00:00:10,780 --> 00:00:13,310
‫Y esta parte es en realidad un

5
00:00:13,310 --> 00:00:15,450
‫poco más difícil porque, tenga

6
00:00:15,450 --> 00:00:17,730
‫en cuenta que una revisión se

7
00:00:19,829 --> 00:00:21,246
‫actualiza o

8
00:00:25,490 --> 00:00:28,277
‫elimina usando findByIdAndUpdate o también findByIdAndDelete, ¿verdad?

9
00:00:33,540 --> 00:00:37,020
‫Entonces, para estos, en realidad no tenemos middleware de documentos,

10
00:00:37,020 --> 00:00:39,830
‫sino solo middleware de consultas, de acuerdo.

11
00:00:39,830 --> 00:00:42,630
‫Entonces, en la consulta, en realidad no

12
00:00:42,630 --> 00:00:46,140
‫tenemos acceso directo al documento para luego hacer algo

13
00:00:46,140 --> 00:00:48,300
‫similar a esto, está bien.

14
00:00:48,300 --> 00:00:51,380
‫Porque, recuerde, necesitamos acceso a la revisión actual, de

15
00:00:51,380 --> 00:00:54,130
‫modo que desde allí, podamos extraer el ID

16
00:00:54,130 --> 00:00:58,030
‫del recorrido y luego calcular las estadísticas desde allí, correcto, pero nuevamente,

17
00:00:58,030 --> 00:01:00,130
‫para estos ganchos aquí, solo

18
00:01:00,130 --> 00:01:02,830
‫tenemos el middleware de consultas, está bien.

19
00:01:02,830 --> 00:01:04,890
‫Pero déjame mostrarte un

20
00:01:04,890 --> 00:01:07,610
‫buen truco para sortear esta limitación.

21
00:01:07,610 --> 00:01:10,040
‫Entonces, vamos a implementar

22
00:01:10,040 --> 00:01:14,073
‫un pre-middleware para estos ganchos, básicamente para estos eventos.

23
00:01:15,860 --> 00:01:19,730
‫Entonces, antes, y luego de nuevo, voy a usar una

24
00:01:19,730 --> 00:01:22,870
‫expresión regular para una cadena que comienza con

25
00:01:22,870 --> 00:01:25,457
‫findOneAnd y eso es todo.

26
00:01:28,641 --> 00:01:30,410
‫Y entonces este

27
00:01:30,410 --> 00:01:33,970
‫va a funcionar para findOneAndUpdate y findOneAndDelete

28
00:01:34,830 --> 00:01:37,150
‫porque, recuerde que detrás

29
00:01:37,150 --> 00:01:40,480
‫de escena, findByIdAndUpdate es solo una

30
00:01:40,480 --> 00:01:44,750
‫abreviatura de findOneAndUpdate con la ID actual, correcto.

31
00:01:44,750 --> 00:01:48,530
‫Entonces, aquí, realmente necesitamos usar los

32
00:01:48,530 --> 00:01:52,833
‫ganchos de middleware findOneAndDelete y findOneAndUpdate, de acuerdo.

33
00:01:55,500 --> 00:01:59,970
‫Entonces, funciona y obtiene la siguiente palabra clave

34
00:01:59,970 --> 00:02:02,420
‫porque es pre-middleware.

35
00:02:02,420 --> 00:02:05,310
‫Entonces, recuerde que el objetivo es obtener acceso

36
00:02:05,310 --> 00:02:07,990
‫al documento de revisión actual, está bien,

37
00:02:07,990 --> 00:02:11,280
‫pero aquí, esta palabra clave es la consulta actual.

38
00:02:11,280 --> 00:02:13,650
‫Ahora bien, ¿cómo vamos a solucionar esto?

39
00:02:13,650 --> 00:02:16,150
‫Bueno, básicamente podemos ejecutar una consulta, y luego

40
00:02:16,150 --> 00:02:18,200
‫eso nos dará el documento que

41
00:02:18,200 --> 00:02:20,040
‫se está procesando actualmente.

42
00:02:20,040 --> 00:02:22,650
‫Entonces, para hacer eso, podemos usar findOne.

43
00:02:25,590 --> 00:02:26,590
‫Y eso es.

44
00:02:26,590 --> 00:02:29,740
‫Entonces, todo lo que tenemos que hacer es esperar esta consulta y

45
00:02:29,740 --> 00:02:31,090
‫luego guardarla en algún lugar.

46
00:02:34,140 --> 00:02:38,850
‫Así que llamémoslo r, que va a ser objeto de revisión, de acuerdo.

47
00:02:38,850 --> 00:02:40,763
‫Luego guárdelo como async.

48
00:02:42,650 --> 00:02:43,773
‫Y eso es.

49
00:02:45,000 --> 00:02:47,830
‫Y solo para asegurarnos de que

50
00:02:47,830 --> 00:02:52,340
‫esto funcione aquí, por ahora registremos esto en la consola, de acuerdo.

51
00:02:52,340 --> 00:02:55,080
‫Entonces, sin hacer ningún cálculo, lo único

52
00:02:55,080 --> 00:02:56,760
‫que realmente nos

53
00:02:56,760 --> 00:02:59,960
‫interesa es ver si este buen truco funciona.

54
00:02:59,960 --> 00:03:02,410
‫Básicamente, el truco de solucionar eso en un

55
00:03:02,410 --> 00:03:04,070
‫midddleware de consulta es que

56
00:03:04,070 --> 00:03:05,853
‫solo tenemos acceso a la consulta.

57
00:03:06,890 --> 00:03:09,850
‫Entonces, nuevamente, necesitamos obtener acceso al

58
00:03:09,850 --> 00:03:13,210
‫documento, por lo que básicamente ejecutamos esta consulta

59
00:03:13,210 --> 00:03:14,463
‫usando findOne.

60
00:03:15,620 --> 00:03:20,603
‫De acuerdo, actualice una revisión y, de hecho, actualice

61
00:03:22,570 --> 00:03:26,313
‫la última que hicimos, de acuerdo, y

62
00:03:31,310 --> 00:03:33,050
‫la calificación,

63
00:03:33,050 --> 00:03:35,010
‫ahora configurémosla en cuatro.

64
00:03:35,010 --> 00:03:37,080
‫Así que antes eran

65
00:03:38,130 --> 00:03:42,023
‫cinco y ahora lo vamos a cambiar a cuatro.

66
00:03:43,040 --> 00:03:44,083
‫Entonces

67
00:03:46,900 --> 00:03:50,620
‫envió eso, y aquí está la reseña.

68
00:03:50,620 --> 00:03:53,140
‫Ahora, por supuesto, la calificación todavía está

69
00:03:53,140 --> 00:03:56,130
‫establecida en cinco en este punto, porque este findOne

70
00:03:56,130 --> 00:03:58,850
‫aquí realmente obtiene el documento de la base

71
00:03:58,850 --> 00:04:01,660
‫de datos, por lo que en este momento, en

72
00:04:01,660 --> 00:04:04,900
‫pre, todavía no persistió ningún cambio en la base de

73
00:04:04,900 --> 00:04:06,540
‫datos, y entonces eran

74
00:04:06,540 --> 00:04:08,990
‫cinco antes, y ahora todavía serán cinco.

75
00:04:08,990 --> 00:04:10,460
‫Pero eso realmente no

76
00:04:10,460 --> 00:04:13,750
‫importa aquí porque todo lo que nos interesa es esta identificación.

77
00:04:13,750 --> 00:04:16,580
‫En realidad, esta identificación de la gira, es

78
00:04:16,580 --> 00:04:18,350
‫cierto, porque eso es lo

79
00:04:18,350 --> 00:04:21,220
‫que vamos a necesitar para calcular las calificaciones promedio.

80
00:04:21,220 --> 00:04:24,363
‫Bien, y ahora, usemos esa función.

81
00:04:25,240 --> 00:04:27,850
‫Bien, ahora, pensemos en esto

82
00:04:27,850 --> 00:04:32,190
‫porque si usáramos esta función calcAverageRatings en este

83
00:04:32,190 --> 00:04:33,850
‫momento, entonces

84
00:04:33,850 --> 00:04:36,100
‫calcularíamos las estadísticas usando

85
00:04:36,100 --> 00:04:39,490
‫los datos no actualizados, de acuerdo.

86
00:04:39,490 --> 00:04:42,390
‫Y esa es exactamente la misma razón por la

87
00:04:42,390 --> 00:04:45,400
‫que aquí arriba, también necesitábamos usar post y no pre,

88
00:04:45,400 --> 00:04:48,650
‫está bien, porque solo después de que el documento ya

89
00:04:48,650 --> 00:04:50,620
‫está guardado en la base

90
00:04:50,620 --> 00:04:52,850
‫de datos, tiene sentido calcular las calificaciones.

91
00:04:52,850 --> 00:04:55,570
‫Y aquí, es exactamente lo mismo, con

92
00:04:55,570 --> 00:04:58,650
‫la gran diferencia de que no podemos simplemente cambiar

93
00:04:58,650 --> 00:05:00,533
‫este pre a post.

94
00:05:01,390 --> 00:05:04,500
‫Entonces no podemos hacer eso porque en este momento

95
00:05:04,500 --> 00:05:07,260
‫ya no tenemos acceso a la consulta porque

96
00:05:07,260 --> 00:05:10,410
‫la consulta ya se ha ejecutado, correcto, y sin

97
00:05:10,410 --> 00:05:11,500
‫la consulta,

98
00:05:11,500 --> 00:05:13,670
‫no podemos guardar el documento de

99
00:05:13,670 --> 00:05:16,410
‫revisión, y luego no podemos ejecutar esta función.

100
00:05:16,410 --> 00:05:20,360
‫Entonces, esto es realmente confuso, lo entiendo, pero realmente decidí

101
00:05:20,360 --> 00:05:23,710
‫crear esta conferencia de esta manera porque, bueno, en

102
00:05:23,710 --> 00:05:25,790
‫realidad es la única

103
00:05:25,790 --> 00:05:28,730
‫solución para este problema, y es un gran

104
00:05:28,730 --> 00:05:32,240
‫ejercicio para que usted comprenda básicamente esta Experiencia Hello.

105
00:05:32,240 --> 00:05:35,833
‫Entonces, la solución para esto ahora es usar

106
00:05:37,520 --> 00:05:40,690
‫post, entonces, reviewSchema, luego básicamente lo mismo,

107
00:05:40,690 --> 00:05:44,460
‫así que, de hecho, copiemos todo esto, hagamos nuestras

108
00:05:44,460 --> 00:05:47,640
‫vidas un poco más fáciles, eliminemos esto

109
00:05:47,640 --> 00:05:50,033
‫y eliminemos el Siguiente.

110
00:05:51,850 --> 00:05:54,320
‫Aquí, también necesitamos llamar a

111
00:05:54,320 --> 00:05:58,170
‫continuación, está bien, pero luego lo publicamos, está bien.

112
00:05:58,170 --> 00:05:59,730
‫Y ahora en este

113
00:05:59,730 --> 00:06:01,840
‫momento, después de que la consulta ya haya

114
00:06:01,840 --> 00:06:04,700
‫finalizado y, por lo tanto, la revisión se haya actualizado,

115
00:06:04,700 --> 00:06:06,290
‫este es un momento perfecto en

116
00:06:06,290 --> 00:06:08,283
‫el que podemos llamar a esta función.

117
00:06:09,510 --> 00:06:12,720
‫Entonces, calcule las calificaciones promedio.

118
00:06:12,720 --> 00:06:15,930
‫Pero, ¿de dónde obtenemos ahora la identificación de la gira?

119
00:06:15,930 --> 00:06:17,860
‫Bueno, tendremos que usar un

120
00:06:17,860 --> 00:06:21,260
‫truco que consiste básicamente en pasar datos del middleware

121
00:06:21,260 --> 00:06:23,000
‫previo al middleware posterior.

122
00:06:23,000 --> 00:06:26,690
‫Entonces, en lugar de guardar este documento en una variable

123
00:06:26,690 --> 00:06:30,403
‫simple, lo guardaremos en esta. r.

124
00:06:31,750 --> 00:06:35,773
‫Básicamente, creamos una propiedad en esta variable.

125
00:06:36,700 --> 00:06:40,390
‫Bien, y ahora aquí, todavía tenemos acceso a eso.

126
00:06:40,390 --> 00:06:45,350
‫Y ahora, podemos decir esto. r, que recuerda es la revisión,

127
00:06:45,350 --> 00:06:47,603
‫y luego. excursión.

128
00:06:49,220 --> 00:06:53,300
‫Entonces, esto es de nuevo bastante confuso, pero nuevamente

129
00:06:53,300 --> 00:06:56,850
‫también bastante divertido una vez que entiendes cómo

130
00:06:56,850 --> 00:06:58,873
‫funciona realmente, de acuerdo.

131
00:06:59,800 --> 00:07:03,200
‫Ahora, nuevamente, necesitamos algo como esto aquí para realmente

132
00:07:03,200 --> 00:07:06,320
‫llamar a esta función aquí porque recuerde que

133
00:07:06,320 --> 00:07:08,460
‫este de hecho es

134
00:07:08,460 --> 00:07:12,570
‫un método estático, por lo que debemos llamarlo en el modelo.

135
00:07:12,570 --> 00:07:15,500
‫Ahora, ¿dónde está este modelo en este caso?

136
00:07:15,500 --> 00:07:20,500
‫Bueno, es en esto. r, que en este caso

137
00:07:20,848 --> 00:07:22,550
‫es equivalente a

138
00:07:22,550 --> 00:07:25,113
‫esto aquí en este middleware. constructor. calcAverageRatings.

139
00:07:26,427 --> 00:07:29,217
‫Woo, eso parece bastante abrumador, ¿no?

140
00:07:31,860 --> 00:07:35,403
‫Por supuesto, tenemos que esperarlo, por eso lo declaramos

141
00:07:36,600 --> 00:07:38,100
‫asíncrono, de acuerdo.

142
00:07:38,100 --> 00:07:42,600
‫Entonces, nuevamente, básicamente usamos esta forma aquí de pasar los

143
00:07:42,600 --> 00:07:46,210
‫datos del middleware previo al middleware posterior, y

144
00:07:46,210 --> 00:07:48,530
‫entonces aquí recuperamos el

145
00:07:48,530 --> 00:07:50,930
‫documento de revisión de esta variable.

146
00:07:50,930 --> 00:07:55,060
‫De acuerdo, y nuevamente, tuvimos que hacerlo de esta manera

147
00:07:55,060 --> 00:07:59,970
‫porque en este momento aquí, la consulta ya estaba ejecutada, por

148
00:07:59,970 --> 00:08:01,317
‫lo que

149
00:08:01,317 --> 00:08:03,550
‫no pudimos hacer esto aquí.

150
00:08:03,550 --> 00:08:06,783
‫Y de hecho escribamos eso;

151
00:08:11,950 --> 00:08:16,753
‫NO funciona aquí, la consulta ya se ha ejecutado.

152
00:08:19,690 --> 00:08:21,253
‫Genial, y con esto, ahora deberíamos

153
00:08:22,610 --> 00:08:24,130
‫estar listos para probar esto.

154
00:08:24,130 --> 00:08:27,103
‫Así que sigamos adelante y actualice este

155
00:08:28,100 --> 00:08:32,850
‫aquí una vez más, y configurémoslo en una calificación de uno, de acuerdo.

156
00:08:32,850 --> 00:08:37,493
‫Ahora echemos un vistazo aquí, hasta que vea que el número de calificaciones

157
00:08:39,160 --> 00:08:41,060
‫sigue siendo cinco, pero el

158
00:08:41,060 --> 00:08:44,020
‫promedio ahora es solo tres, y ahora la pregunta

159
00:08:44,020 --> 00:08:46,620
‫es si esto realmente se actualizó también

160
00:08:46,620 --> 00:08:49,220
‫en el recorrido, y, sí, de hecho,

161
00:08:49,220 --> 00:08:50,593
‫lo hizo. .

162
00:08:53,740 --> 00:08:58,150
‫Entonces, cinco calificaciones con un promedio de tres.

163
00:08:58,150 --> 00:09:02,040
‫Genial, ahora actualicemos otro.

164
00:09:02,040 --> 00:09:06,220
‫Entonces, para eso, obtengamos todas nuestras reseñas, y

165
00:09:06,220 --> 00:09:09,543
‫en realidad no las queremos todas,

166
00:09:11,570 --> 00:09:14,280
‫sino solo la última.

167
00:09:14,280 --> 00:09:16,201
‫Y aquí todavía tengo

168
00:09:16,201 --> 00:09:18,730
‫este filtro, así que debería deshacerme de

169
00:09:18,730 --> 00:09:20,253
‫eso, para que

170
00:09:21,650 --> 00:09:26,650
‫obtengamos los 65 resultados, todas estas revisiones, pero solo queremos las últimas, es

171
00:09:26,980 --> 00:09:29,280
‫decir, las que acabamos de crear.

172
00:09:29,280 --> 00:09:31,073
‫Actualicemos ...

173
00:09:32,820 --> 00:09:34,160
‫No estoy seguro, porque en realidad no están en orden aquí.

174
00:09:37,570 --> 00:09:42,090
‫Vamos, está bien, aquí tenemos los más recientes.

175
00:09:42,090 --> 00:09:47,090
‫Permítanme actualizar este aquí, digamos, cuatro, solo como una

176
00:09:47,490 --> 00:09:50,963
‫prueba final, y eso debería elevar

177
00:09:56,540 --> 00:09:59,410
‫un poco el promedio.

178
00:09:59,410 --> 00:10:01,173
‫Y de hecho lo hizo.

179
00:10:02,490 --> 00:10:04,090
‫Entonces, 3. 6 ahora, y por supuesto, el número

180
00:10:04,090 --> 00:10:07,400
‫sigue siendo cinco porque no agregó una nueva reseña.

181
00:10:07,400 --> 00:10:10,400
‫Así que funciona muy bien en la actualización,

182
00:10:10,400 --> 00:10:12,700
‫ahora probémoslo también con la eliminación.

183
00:10:12,700 --> 00:10:15,463
‫Así que sigamos adelante y eliminemos

184
00:10:17,470 --> 00:10:21,710
‫la revisión que acabamos de actualizar y ahora deberíamos quedarnos

185
00:10:23,350 --> 00:10:26,860
‫a solo cuatro, y de hecho, aquí estamos.

186
00:10:26,860 --> 00:10:28,550
‫Así que ahora, solo cuatro.

187
00:10:28,550 --> 00:10:30,100
‫Y eliminémoslos todos.

188
00:10:30,100 --> 00:10:32,053
‫Entonces, este es el siguiente.

189
00:10:35,410 --> 00:10:36,723
‫Ah, aquí estamos.

190
00:10:45,038 --> 00:10:46,180
‫Entonces también este.

191
00:10:46,180 --> 00:10:47,303
‫Entonces, ahora deberíamos

192
00:10:53,560 --> 00:10:55,760
‫quedarnos solo a tres o, en

193
00:10:56,970 --> 00:11:00,350
‫realidad, solo nos quedan dos con un promedio de cuatro.

194
00:11:00,350 --> 00:11:01,893
‫Así que veamos cuál nos queda todavía.

195
00:11:05,600 --> 00:11:08,300
‫Entonces es este con tres y este con cinco.

196
00:11:08,300 --> 00:11:12,330
‫Y por eso tenemos este promedio de cuatro.

197
00:11:12,330 --> 00:11:15,203
‫Así que vamos a deshacernos de este y ahora nuestro

198
00:11:19,210 --> 00:11:21,320
‫promedio debería ser de cinco, ¿verdad?

199
00:11:21,320 --> 00:11:25,020
‫O en realidad tres porque el único que queda

200
00:11:25,020 --> 00:11:26,340
‫tiene tres.

201
00:11:26,340 --> 00:11:29,340
‫Y ahora la prueba final, eliminando la

202
00:11:29,340 --> 00:11:33,350
‫última, solo para ver qué pasará una vez que hagamos eso.

203
00:11:33,350 --> 00:11:35,993
‫Y obtenemos un error aquí.

204
00:11:41,070 --> 00:11:42,530
‫Por lo tanto, no se puede leer la propiedad nRating de undefined.

205
00:11:42,530 --> 00:11:46,400
‫Eso es calcAverageRatings en la línea número 69.

206
00:11:46,400 --> 00:11:50,683
‫Entonces, no sé qué es esto.

207
00:11:53,280 --> 00:11:54,903
‫Entonces, línea 69, y entonces, es este problema aquí.

208
00:11:55,760 --> 00:12:00,440
‫Entonces estamos tratando de leer nRating de undefined.

209
00:12:00,440 --> 00:12:03,530
‫Entonces, las estadísticas cero son básicamente indefinidas.

210
00:12:03,530 --> 00:12:06,420
‫Y eso es porque si no hay ningún

211
00:12:06,420 --> 00:12:09,400
‫documento que coincida con esta consulta aquí básicamente,

212
00:12:09,400 --> 00:12:11,780
‫entonces simplemente obtenemos una matriz vacía.

213
00:12:11,780 --> 00:12:13,947
‫Y eso es exactamente lo que tenemos aquí.

214
00:12:13,947 --> 00:12:17,100
‫Así que esta es la matriz de estadísticas y ahora

215
00:12:17,100 --> 00:12:19,350
‫mismo no tiene ningún resultado, está bien,

216
00:12:19,350 --> 00:12:22,630
‫por lo que solo deberíamos ejecutar este fragmento de código aquí

217
00:12:22,630 --> 00:12:25,500
‫siempre que tengamos algo en la matriz de estadísticas.

218
00:12:25,500 --> 00:12:28,653
‫Así que hagámoslo.

219
00:12:29,810 --> 00:12:30,903
‫Entonces, si stats. la longitud es

220
00:12:31,760 --> 00:12:36,760
‫mayor que cero, bueno, entonces haz esto.

221
00:12:40,090 --> 00:12:42,623
‫Y si no, bueno, básicamente eso significa que

222
00:12:45,450 --> 00:12:48,100
‫todas nuestras revisiones se han ido, bueno, entonces básicamente

223
00:12:48,100 --> 00:12:50,260
‫queremos volver a los valores predeterminados.

224
00:12:50,260 --> 00:12:54,280
‫Entonces, lo estableceremos en la cantidad

225
00:12:54,280 --> 00:12:58,780
‫de cero y el promedio de 4. 5, que recuerde, es el predeterminado cuando no hay

226
00:12:58,780 --> 00:13:02,030
‫revisiones en absoluto.

227
00:13:02,030 --> 00:13:04,943
‫Así que creemos rápidamente una nueva revisión, y puede

228
00:13:08,540 --> 00:13:10,823
‫ser esta, de acuerdo, así que volvemos

229
00:13:12,200 --> 00:13:13,150
‫a tener

230
00:13:15,880 --> 00:13:19,400
‫una calificación y ahora la eliminemos de inmediato, solo para probar

231
00:13:19,400 --> 00:13:20,780
‫ese fragmento de

232
00:13:20,780 --> 00:13:24,963
‫código que acabamos de escribir, solo para verlo aquí. también, por lo

233
00:13:28,080 --> 00:13:30,310
‫que una calificación, promedio de cinco.

234
00:13:30,310 --> 00:13:32,573
‫Y ahora, cuando lo eliminamos,

235
00:13:33,850 --> 00:13:36,113
‫ya no obtenemos ningún error.

236
00:13:38,910 --> 00:13:41,790
‫Y en nuestro recorrido, volvemos

237
00:13:41,790 --> 00:13:45,630
‫a cero y un valor predeterminado de 4. 5.

238
00:13:45,630 --> 00:13:48,450
‫Está bien, está bien, está bien, perfecto.

239
00:13:48,450 --> 00:13:51,560
‫Así que, de nuevo, tomemos un breve

240
00:13:51,560 --> 00:13:54,920
‫segundo para recapitular lo que acabamos de hacer.

241
00:13:54,920 --> 00:13:57,090
‫Entonces, para poder ejecutar esta función

242
00:13:57,090 --> 00:13:59,970
‫aquí también en la actualización y en la eliminación,

243
00:13:59,970 --> 00:14:02,320
‫en realidad necesitamos usar el middleware de consultas

244
00:14:02,320 --> 00:14:04,590
‫que nos brinda Mongoose para estas situaciones.

245
00:14:04,590 --> 00:14:07,110
‫Bien, entonces, no tenemos un middleware

246
00:14:07,110 --> 00:14:11,230
‫de documentos útil, que funcione, para estas funciones, sino que

247
00:14:11,230 --> 00:14:13,140
‫necesitamos usar el

248
00:14:13,140 --> 00:14:15,880
‫middleware de consultas, y en ese,

249
00:14:15,880 --> 00:14:18,660
‫no tenemos acceso directo al documento actual.

250
00:14:18,660 --> 00:14:20,090
‫Y entonces tenemos que

251
00:14:20,090 --> 00:14:21,540
‫solucionar eso usando este findOne aquí,

252
00:14:21,540 --> 00:14:24,870
‫y así básicamente recuperar el documento actual de la base de datos.

253
00:14:24,870 --> 00:14:27,340
‫Luego lo almacenamos en la variable de

254
00:14:27,340 --> 00:14:30,450
‫consulta actual, y eso es esto, y al hacer eso, obtenemos

255
00:14:30,450 --> 00:14:32,950
‫acceso a él en el middleware de publicación.

256
00:14:32,950 --> 00:14:36,480
‫Y es solo en el middleware de publicación donde realmente

257
00:14:36,480 --> 00:14:38,610
‫calculamos las estadísticas para las revisiones.

258
00:14:38,610 --> 00:14:42,500
‫Y recuerde que lo hacemos de esta manera porque si lo

259
00:14:42,500 --> 00:14:44,370
‫hiciéramos bien en esta

260
00:14:44,370 --> 00:14:47,380
‫función de middleware, entonces los datos subyacentes no

261
00:14:47,380 --> 00:14:50,100
‫se habrían actualizado en ese punto y, por

262
00:14:50,100 --> 00:14:53,150
‫lo tanto, las estadísticas calculadas no estarían realmente actualizadas.

263
00:14:53,150 --> 00:14:55,150
‫Y es por eso que usamos este proceso

264
00:14:55,150 --> 00:14:56,540
‫de dos pasos aquí básicamente.

265
00:14:56,540 --> 00:14:58,963
‫Ahora, deshagámonos de esta consola. inicie sesión aquí, ya que hemos terminado, y también

266
00:15:00,020 --> 00:15:02,220
‫de estas estadísticas.

267
00:15:03,130 --> 00:15:06,883
‫Entonces, espero que esto haya sido divertido para

268
00:15:08,270 --> 00:15:11,390
‫ti y no demasiado abrumador.

269
00:15:11,390 --> 00:15:13,890
‫Diseñé este ejercicio específicamente para que pudiéramos

270
00:15:13,890 --> 00:15:16,390
‫resolver un problema empresarial del mundo

271
00:15:16,390 --> 00:15:19,270
‫real utilizando todas las herramientas que nos brinda Mongoose.

272
00:15:19,270 --> 00:15:22,150
‫Y así, con eso, espero que haya aprendido un

273
00:15:22,150 --> 00:15:24,500
‫poco mejor cómo trabajar con todos estos

274
00:15:24,500 --> 00:15:26,980
‫diferentes middlewares en diferentes situaciones cuando sea necesario

275
00:15:26,980 --> 00:15:29,220
‫en una situación del mundo real.

276
00:15:29,220 --> 00:15:31,640
‫Entonces, un gran trabajo por terminar esta

277
00:15:31,640 --> 00:15:35,700
‫conferencia bastante desafiante y por estar todavía conmigo en este punto del curso.

278
00:15:35,700 --> 00:15:39,030
‫Es muy bueno para mí verlo, así que estoy

279
00:15:39,030 --> 00:15:40,594
‫muy feliz por eso.

280
00:15:40,594 --> 00:15:43,500
‫Pero de todos modos, todavía hay más contenido

281
00:15:43,500 --> 00:15:46,780
‫excelente en esta sección, así que sigamos adelante juntos,

282
00:15:46,780 --> 00:15:48,290
‫directamente al siguiente video.

