﻿1
00:00:01,110 --> 00:00:03,330
‫Narrador: En este video, hablaremos sobre

2
00:00:03,330 --> 00:00:06,180
‫el segundo tipo de middleware Mongoose, que es

3
00:00:06,180 --> 00:00:08,133
‫el middleware de consultas.

4
00:00:09,690 --> 00:00:12,169
‫Y, como su nombre lo indica,

5
00:00:12,169 --> 00:00:15,720
‫el middleware de consultas nos permite ejecutar funciones antes o

6
00:00:15,720 --> 00:00:18,360
‫después de que se ejecute una determinada consulta.

7
00:00:18,360 --> 00:00:21,020
‫Y ahora agreguemos un gancho de búsqueda

8
00:00:21,020 --> 00:00:23,730
‫previa, básicamente, un middleware que se ejecutará antes

9
00:00:23,730 --> 00:00:26,493
‫de que se ejecute cualquier consulta de búsqueda.

10
00:00:29,780 --> 00:00:31,740
‫Así que agreguemos otro comentario aquí.

11
00:00:31,740 --> 00:00:35,283
‫Así que este es el middleware de consultas.

12
00:00:36,270 --> 00:00:38,760
‫Y, por supuesto, funciona de forma muy similar a como

13
00:00:38,760 --> 00:00:39,763
‫lo hacía antes.

14
00:00:41,320 --> 00:00:43,950
‫Entonces el tourSchema, y luego pre, y

15
00:00:43,950 --> 00:00:46,280
‫aquí definimos el gancho, que será

16
00:00:46,280 --> 00:00:47,557
‫"encontrar".

17
00:00:50,110 --> 00:00:52,900
‫"Entonces, función, y nuevamente, tenemos

18
00:00:52,900 --> 00:00:55,540
‫acceso a la siguiente función.

19
00:00:55,540 --> 00:00:57,870
‫Y de hecho, comencemos llamándolo

20
00:00:57,870 --> 00:01:00,880
‫aquí al final para que no lo olvidemos.

21
00:01:00,880 --> 00:01:03,310
‫Bien, y como puede ver, se

22
00:01:03,310 --> 00:01:05,680
‫ve exactamente como el otro middleware,

23
00:01:05,680 --> 00:01:07,170
‫el otro pre-hook.

24
00:01:07,170 --> 00:01:10,320
‫La única diferencia aquí es realmente este gancho de búsqueda, que

25
00:01:10,320 --> 00:01:12,360
‫hará que esta consulta sea un middleware

26
00:01:12,360 --> 00:01:14,320
‫y no un documento de middleware.

27
00:01:14,320 --> 00:01:15,153
‫¿Está bien?

28
00:01:15,153 --> 00:01:17,040
‫Entonces, la gran diferencia aquí es

29
00:01:17,040 --> 00:01:20,910
‫que la palabra clave this ahora apuntará a la consulta actual y

30
00:01:20,910 --> 00:01:22,700
‫no al documento actual,

31
00:01:22,700 --> 00:01:25,580
‫porque en realidad no estamos procesando ningún documento aquí.

32
00:01:25,580 --> 00:01:28,370
‫Realmente vamos a estar procesando una consulta.

33
00:01:28,370 --> 00:01:29,203
‫¿Okey?

34
00:01:29,203 --> 00:01:32,160
‫Y el caso de uso que vamos a hacer aquí es este.

35
00:01:32,160 --> 00:01:34,380
‫Entonces, supongamos que podemos tener

36
00:01:34,380 --> 00:01:36,670
‫recorridos secretos en nuestra base de

37
00:01:36,670 --> 00:01:39,760
‫datos, como recorridos que solo se ofrecen internamente, o

38
00:01:39,760 --> 00:01:43,160
‫para un grupo muy pequeño, como VIP, de personas, y

39
00:01:43,160 --> 00:01:45,420
‫que el público no debería conocer.

40
00:01:45,420 --> 00:01:47,327
‫Ahora, dado que estos recorridos son

41
00:01:47,327 --> 00:01:51,080
‫secretos, no queremos que los recorridos secretos aparezcan nunca en las

42
00:01:51,080 --> 00:01:52,510
‫salidas de resultados.

43
00:01:52,510 --> 00:01:53,510
‫¿Derecha?

44
00:01:53,510 --> 00:01:56,950
‫Entonces, lo que vamos a hacer es crear un campo

45
00:01:56,950 --> 00:02:00,780
‫de recorrido secreto y luego consultar solo los recorridos que no son secretos.

46
00:02:00,780 --> 00:02:01,690
‫¿Está bien?

47
00:02:01,690 --> 00:02:02,763
‫Entonces, hagámoslo.

48
00:02:04,160 --> 00:02:07,103
‫Comience agregando aquí, y hagámoslo al final.

49
00:02:11,447 --> 00:02:15,114
‫secretTour, por lo que el tipo debería ser un booleano, y creo

50
00:02:16,560 --> 00:02:17,980
‫que esta es la

51
00:02:17,980 --> 00:02:19,710
‫primera vez que usamos un

52
00:02:19,710 --> 00:02:22,030
‫booleano, por lo que sería verdadero o falso.

53
00:02:22,030 --> 00:02:23,852
‫Entonces, si es cierto,

54
00:02:23,852 --> 00:02:25,770
‫entonces es un recorrido secreto, y

55
00:02:25,770 --> 00:02:29,133
‫no queremos que se muestre y, por defecto, es falso.

56
00:02:30,570 --> 00:02:31,403
‫¿Está bien?

57
00:02:31,403 --> 00:02:35,000
‫Y así, básicamente, los recorridos no suelen ser secretos.

58
00:02:35,000 --> 00:02:35,950
‫Bueno.

59
00:02:35,950 --> 00:02:39,740
‫A continuación, sigamos adelante y creemos un recorrido secreto para

60
00:02:40,900 --> 00:02:44,610
‫que luego podamos probar su uso, ¿de acuerdo?

61
00:02:44,610 --> 00:02:49,610
‫Así que llamemos a esto aquí el Tour Súper Secreto.

62
00:02:50,530 --> 00:02:51,880
‫Todo esto

63
00:02:54,130 --> 00:02:58,603
‫no importa, y permítanme decirles que secretTour es verdad.

64
00:02:59,700 --> 00:03:01,020
‫¿Okey?

65
00:03:01,020 --> 00:03:02,443
‫Guárdalo aquí ...

66
00:03:03,480 --> 00:03:05,980
‫Y, uh, ¿dónde está eso?

67
00:03:05,980 --> 00:03:08,520
‫Sí. Tan secretTour es verdad.

68
00:03:08,520 --> 00:03:10,750
‫Y ahora vayamos a Compass

69
00:03:10,750 --> 00:03:13,783
‫y eliminemos todos estos otros recorridos que tuvimos allí.

70
00:03:15,600 --> 00:03:17,483
‫Entonces, recarguemos esto ...

71
00:03:18,890 --> 00:03:22,813
‫Y luego, aquí abajo, deberíamos haber ...

72
00:03:24,470 --> 00:03:27,890
‫Sí, este recorrido de prueba aquí, podemos eliminarlo.

73
00:03:27,890 --> 00:03:29,613
‫Otro recorrido de prueba ...

74
00:03:30,740 --> 00:03:32,540
‫Así que todo este desorden aquí,

75
00:03:33,730 --> 00:03:35,530
‫básicamente, queremos deshacernos de él.

76
00:03:35,530 --> 00:03:37,600
‫Solo guardamos el tour secreto aquí

77
00:03:37,600 --> 00:03:40,010
‫para que ahora podamos experimentar con él.

78
00:03:40,010 --> 00:03:43,170
‫De acuerdo, y aquí ves que secretTour está configurado como

79
00:03:43,170 --> 00:03:44,530
‫verdadero, mientras que

80
00:03:44,530 --> 00:03:46,180
‫los otros, por supuesto,

81
00:03:46,180 --> 00:03:48,110
‫no tienen este atributo, porque, cuando

82
00:03:48,110 --> 00:03:49,993
‫los creamos, aún no teníamos secretTour.

83
00:03:51,780 --> 00:03:54,060
‫Entonces, ahora, justo antes de comenzar,

84
00:03:54,060 --> 00:03:57,539
‫de vuelta en Postman, confirmemos que, de hecho, la última

85
00:03:57,539 --> 00:04:01,230
‫gira aquí, y en realidad no es la última gira,

86
00:04:01,230 --> 00:04:02,660
‫entonces, ¿dónde está?

87
00:04:02,660 --> 00:04:03,570
‫Oh, es el primero.

88
00:04:03,570 --> 00:04:05,950
‫Así que aquí tenemos el Tour Súper Secreto,

89
00:04:05,950 --> 00:04:07,483
‫por supuesto, establecido en verdad.

90
00:04:08,360 --> 00:04:12,010
‫¿Está bien? Entonces, retrocediendo ahora, ejecutemos

91
00:04:12,010 --> 00:04:13,880
‫la consulta como dijimos

92
00:04:13,880 --> 00:04:15,580
‫al principio.

93
00:04:15,580 --> 00:04:18,350
‫Entonces, nuevamente, tenga en cuenta que este es

94
00:04:18,350 --> 00:04:20,780
‫ahora un objeto de consulta, ¿de acuerdo?

95
00:04:20,780 --> 00:04:23,230
‫Y así podemos encadenar todos los métodos

96
00:04:23,230 --> 00:04:25,250
‫que tenemos para las consultas.

97
00:04:25,250 --> 00:04:29,220
‫Y eso simplemente agrega un método de búsqueda

98
00:04:29,220 --> 00:04:31,260
‫aquí, y luego básicamente

99
00:04:31,260 --> 00:04:36,070
‫selecciona todos los documentos donde secretTour no es verdadero, ¿de acuerdo?

100
00:04:36,070 --> 00:04:40,540
‫Tan secretTour ...

101
00:04:40,540 --> 00:04:43,530
‫Y luego no es igual a verdadero.

102
00:04:43,530 --> 00:04:45,710
‫Y lo estoy haciendo así

103
00:04:45,710 --> 00:04:49,170
‫porque, recuerde, los editores actualmente no están configurados como falso.

104
00:04:49,170 --> 00:04:51,120
‫Simplemente no tienen este atributo.

105
00:04:52,090 --> 00:04:53,100
‫¿Está bien?

106
00:04:53,100 --> 00:04:56,210
‫Bien, probémoslo ahora de nuevo.

107
00:04:56,210 --> 00:04:58,263
‫Y ahora debería haber desaparecido aquí.

108
00:04:59,220 --> 00:05:01,483
‫Y de hecho, ya no está aquí.

109
00:05:02,320 --> 00:05:05,570
‫De acuerdo, tenemos todos los tours que no son secretos,

110
00:05:05,570 --> 00:05:07,290
‫pero no el tour secreto.

111
00:05:07,290 --> 00:05:08,943
‫Y ahora veo que

112
00:05:08,943 --> 00:05:11,370
‫en realidad tenemos secretTour configurado como

113
00:05:11,370 --> 00:05:13,850
‫falso aquí, pero eso es solo una

114
00:05:13,850 --> 00:05:17,913
‫cosa de Mongoose, así que echemos otro vistazo aquí a Compass

115
00:05:18,830 --> 00:05:19,753
‫y recarguemos.

116
00:05:20,800 --> 00:05:22,920
‫Y entonces ve que, en realidad, en

117
00:05:22,920 --> 00:05:25,450
‫la base de datos, secretTour no está configurado como falso.

118
00:05:25,450 --> 00:05:27,890
‫Mongoose simplemente está agregando eso porque lo tenemos en nuestro

119
00:05:27,890 --> 00:05:30,478
‫esquema como predeterminado y no está en la base de datos.

120
00:05:30,478 --> 00:05:34,360
‫Entonces, básicamente, es ponerlo allí de todos modos.

121
00:05:34,360 --> 00:05:37,150
‫Verá que en realidad tenemos 11

122
00:05:37,150 --> 00:05:40,710
‫documentos, pero aquí en Postman solo obtenemos diez resultados.

123
00:05:40,710 --> 00:05:41,600
‫Y eso

124
00:05:41,600 --> 00:05:45,360
‫es, por supuesto, porque nuestro Tour Secreto básicamente está filtrado.

125
00:05:45,360 --> 00:05:46,193
‫¿Okey?

126
00:05:46,193 --> 00:05:47,910
‫Entonces, intentemos comprender nuevamente lo

127
00:05:47,910 --> 00:05:49,320
‫que realmente sucede.

128
00:05:49,320 --> 00:05:51,730
‫Tan pronto como lleguemos a esta ruta,

129
00:05:51,730 --> 00:05:53,170
‫aquí, usando el

130
00:05:53,170 --> 00:05:55,313
‫método get, veamos qué sucede.

131
00:05:57,520 --> 00:06:00,340
‫Entonces, lo que sucede es que creamos una

132
00:06:00,340 --> 00:06:02,700
‫consulta usando tour. encontrar.

133
00:06:02,700 --> 00:06:03,533
‫¿Okey?

134
00:06:03,533 --> 00:06:05,900
‫Y luego, por supuesto, le encadenamos

135
00:06:05,900 --> 00:06:08,660
‫todos estos métodos como hablamos en una de

136
00:06:08,660 --> 00:06:09,790
‫las últimas

137
00:06:09,790 --> 00:06:13,770
‫conferencias, y luego, al final, ejecutamos esa consulta aquí usando await.

138
00:06:13,770 --> 00:06:15,280
‫¿Derecha? ¿Recuérdalo?

139
00:06:15,280 --> 00:06:17,460
‫Entonces aquí es donde ejecutamos la consulta.

140
00:06:17,460 --> 00:06:20,030
‫Pero, antes de que realmente

141
00:06:20,030 --> 00:06:24,790
‫se ejecute, entonces, se ejecuta nuestro middleware de búsqueda previa.

142
00:06:24,790 --> 00:06:25,623
‫¿Okey?

143
00:06:25,623 --> 00:06:27,873
‫Y se ejecuta porque se

144
00:06:27,873 --> 00:06:30,270
‫encuentra, tal como lo usamos aquí.

145
00:06:30,270 --> 00:06:31,103
‫¿Derecha?

146
00:06:31,103 --> 00:06:33,020
‫Entonces, estamos creando una consulta

147
00:06:33,020 --> 00:06:36,570
‫de búsqueda y, por lo tanto, se ejecuta el gancho de búsqueda.

148
00:06:36,570 --> 00:06:39,420
‫Luego, aquí, dado que es un middleware de consultas, esta

149
00:06:39,420 --> 00:06:41,630
‫palabra clave apunta a la consulta.

150
00:06:41,630 --> 00:06:43,670
‫Entonces, a esa consulta,

151
00:06:43,670 --> 00:06:46,230
‫podemos encadenar otro método de búsqueda, ¿verdad?

152
00:06:46,230 --> 00:06:49,160
‫Y allí, luego filtramos el secretTour usando

153
00:06:49,160 --> 00:06:50,930
‫este objeto de filtro.

154
00:06:50,930 --> 00:06:51,763
‫¿Okey?

155
00:06:51,763 --> 00:06:54,280
‫Básicamente, decir que solo queremos recorridos en

156
00:06:54,280 --> 00:06:57,450
‫los que el recorrido secreto no sea igual a verdadero.

157
00:06:57,450 --> 00:06:59,120
‫Y en realidad

158
00:06:59,120 --> 00:07:00,979
‫funcionaría igual si simplemente dijéramos

159
00:07:00,979 --> 00:07:03,790
‫aquí, falso, pero lo encuentro más limpio así.

160
00:07:03,790 --> 00:07:07,660
‫Bien, ahora solo hay una cosa que debemos arreglar, porque

161
00:07:07,660 --> 00:07:10,140
‫ahora mismo este middleware se está

162
00:07:10,140 --> 00:07:13,010
‫ejecutando para find, pero no para find1.

163
00:07:13,010 --> 00:07:13,843
‫¿Okey?

164
00:07:13,843 --> 00:07:17,023
‫Déjame mostrarte el problema que podríamos tener con eso.

165
00:07:18,270 --> 00:07:23,120
‫Entonces, eh, tomemos la identificación del Tour Secreto.

166
00:07:23,120 --> 00:07:24,570
‫Entonces tenemos el

167
00:07:24,570 --> 00:07:29,570
‫Tour Secreto aquí, y esa es su identificación, y si lo hacemos,

168
00:07:31,370 --> 00:07:35,040
‫entonces eso debería darnos el Tour Súper Secreto aquí.

169
00:07:35,040 --> 00:07:35,873
‫¿Derecha?

170
00:07:35,873 --> 00:07:37,383
‫Y como puede ver,

171
00:07:37,383 --> 00:07:39,470
‫ese filtro que acabamos de construir en

172
00:07:39,470 --> 00:07:41,630
‫el middleware no funciona para este comando.

173
00:07:41,630 --> 00:07:42,463
‫¿Okey?

174
00:07:42,463 --> 00:07:45,640
‫Y eso se debe a que la función

175
00:07:45,640 --> 00:07:47,360
‫de control para

176
00:07:47,360 --> 00:07:51,560
‫esta ruta, como recordará, usa findByID, que, detrás de escena,

177
00:07:51,560 --> 00:07:55,290
‫es find1, por lo que es diferente de find.

178
00:07:55,290 --> 00:07:56,242
‫¿Está bien?

179
00:07:56,242 --> 00:08:01,242
‫Entonces, necesitamos especificar el mismo middleware también para find1.

180
00:08:01,750 --> 00:08:03,610
‫Ahora, hay dos

181
00:08:03,610 --> 00:08:06,760
‫formas de hacerlo, y la primera sería

182
00:08:06,760 --> 00:08:11,363
‫simplemente seguir adelante, copiar este código y luego poner find1 aquí.

183
00:08:12,210 --> 00:08:14,210
‫Pero eso no es realmente bueno,

184
00:08:14,210 --> 00:08:16,970
‫por lo que en su lugar usaremos una expresión regular.

185
00:08:16,970 --> 00:08:20,530
‫Y eso es bastante fácil, y entonces ...

186
00:08:20,530 --> 00:08:22,700
‫Y permítanme duplicar esto aquí,

187
00:08:22,700 --> 00:08:24,013
‫comentar esta

188
00:08:25,495 --> 00:08:28,360
‫pieza y luego, recuerde, una expresión regular

189
00:08:28,360 --> 00:08:30,550
‫comienza y termina con una barra.

190
00:08:30,550 --> 00:08:32,500
‫Y luego aquí, lo que quiero

191
00:08:32,500 --> 00:08:34,437
‫decir es que este

192
00:08:34,437 --> 00:08:36,510
‫middleware debe ejecutarse no solo para

193
00:08:36,510 --> 00:08:40,450
‫find, sino para todos los comandos que comienzan con el nombre find.

194
00:08:40,450 --> 00:08:41,283
‫¿Okey?

195
00:08:41,283 --> 00:08:45,330
‫Entonces, busque y busque1, y también busque1 y elimine, busque1

196
00:08:45,330 --> 00:08:46,830
‫y actualice, y

197
00:08:46,830 --> 00:08:49,400
‫todos estos ahora activarán esta función

198
00:08:49,400 --> 00:08:51,550
‫de middleware que tenemos aquí.

199
00:08:52,760 --> 00:08:53,890
‫¿Está bien?

200
00:08:53,890 --> 00:08:55,580
‫Entonces, no hay necesidad de eso.

201
00:08:55,580 --> 00:08:58,510
‫Esta expresión regular aquí es mucho mejor.

202
00:08:58,510 --> 00:08:59,878
‫Entonces, nuevamente, esto

203
00:08:59,878 --> 00:09:03,000
‫aquí simplemente significa todas las cadenas que comienzan con find.

204
00:09:03,000 --> 00:09:05,140
‫Y de hecho, ya que estamos

205
00:09:05,140 --> 00:09:07,883
‫aquí, permítanme mostrarles las documentaciones de Mongoose nuevamente.

206
00:09:08,970 --> 00:09:13,240
‫Entonces, cuando vayamos aquí, al middleware en estas guías, tendrá una

207
00:09:13,240 --> 00:09:15,670
‫descripción general de todo el middleware.

208
00:09:15,670 --> 00:09:16,557
‫Por ejemplo,

209
00:09:16,557 --> 00:09:19,041
‫el middleware de documentos es del que hablamos

210
00:09:19,041 --> 00:09:21,640
‫antes, que se ejecuta, por ejemplo, al guardar.

211
00:09:21,640 --> 00:09:23,600
‫Pero, de hecho, el middleware de

212
00:09:23,600 --> 00:09:26,510
‫documentos también se puede ejecutar para cosas como remove.

213
00:09:26,510 --> 00:09:27,460
‫¿Está bien?

214
00:09:27,460 --> 00:09:28,840
‫O para validar.

215
00:09:28,840 --> 00:09:31,220
‫De acuerdo, pero no hablé de

216
00:09:31,220 --> 00:09:34,750
‫estos porque generalmente el que usamos siempre es solo para guardar.

217
00:09:34,750 --> 00:09:37,590
‫Ahora, el middleware de consultas puede ejecutarse para todas

218
00:09:37,590 --> 00:09:39,340
‫estas funciones de consulta.

219
00:09:39,340 --> 00:09:41,980
‫Así que busque, como acabamos de

220
00:09:41,980 --> 00:09:43,780
‫especificar, y ahora, con nuestra

221
00:09:43,780 --> 00:09:45,520
‫expresión regular, también

222
00:09:45,520 --> 00:09:47,270
‫se ejecutará para find1,

223
00:09:48,768 --> 00:09:50,518
‫findOneAndDelete, findOneAndRemove y findOneAndUpdate.

224
00:09:51,850 --> 00:09:55,130
‫De todos modos, volviendo a Postman

225
00:09:55,130 --> 00:09:58,650
‫ahora, esto debería haber solucionado esta situación aquí.

226
00:09:58,650 --> 00:10:01,210
‫Entonces, cuando ejecutamos esta consulta, no

227
00:10:01,210 --> 00:10:03,040
‫debería tener resultados.

228
00:10:03,040 --> 00:10:04,800
‫Y de hecho, no es así.

229
00:10:04,800 --> 00:10:08,220
‫Porque, recuerde, estábamos tratando de obtener un Tour secreto.

230
00:10:08,220 --> 00:10:10,370
‫Entonces, el recorrido con esta identificación aquí

231
00:10:10,370 --> 00:10:12,520
‫es secreto, pero nunca queremos que el

232
00:10:12,520 --> 00:10:14,380
‫recorrido secreto aparezca en ninguna consulta.

233
00:10:14,380 --> 00:10:17,283
‫Y por eso, ahora mismo, no obtenemos ningún resultado.

234
00:10:18,190 --> 00:10:19,023
‫¿Okey?

235
00:10:19,023 --> 00:10:20,510
‫Entonces eso funciona ahora.

236
00:10:20,510 --> 00:10:22,160
‫No guarde esto, y

237
00:10:22,160 --> 00:10:24,230
‫ahora, de vuelta a nuestro código.

238
00:10:24,230 --> 00:10:25,900
‫Ahora vamos a especificar

239
00:10:25,900 --> 00:10:28,333
‫también un middleware de publicación para find.

240
00:10:30,140 --> 00:10:35,140
‫Entonces, tourSchema, y luego, como antes, post, y luego usemos nuestra

241
00:10:35,820 --> 00:10:38,510
‫expresión regular aquí nuevamente para cualquier

242
00:10:38,510 --> 00:10:41,113
‫cosa que comience con find.

243
00:10:43,340 --> 00:10:45,240
‫Y luego solo una función

244
00:10:45,240 --> 00:10:47,400
‫normal, y luego aquí, en el middleware posterior

245
00:10:47,400 --> 00:10:49,810
‫a la búsqueda, en realidad obtenemos acceso a todos

246
00:10:49,810 --> 00:10:51,713
‫los documentos que devolvimos de la consulta.

247
00:10:52,680 --> 00:10:54,573
‫Así que llamémoslo Docs.

248
00:10:55,680 --> 00:10:56,780
‫¿Está bien?

249
00:10:56,780 --> 00:10:59,350
‫Por lo tanto, recuerde que este middleware se

250
00:10:59,350 --> 00:11:02,280
‫ejecutará después de que la consulta ya se haya ejecutado.

251
00:11:02,280 --> 00:11:04,100
‫Y así, por tanto, puede tener

252
00:11:04,100 --> 00:11:06,120
‫acceso a los documentos que le fueron devueltos.

253
00:11:06,120 --> 00:11:07,900
‫Nuevamente, porque esa consulta

254
00:11:07,900 --> 00:11:10,033
‫ya ha finalizado en este momento.

255
00:11:11,580 --> 00:11:15,510
‫Así que registremos estos documentos en la consola,

256
00:11:15,510 --> 00:11:16,343
‫así

257
00:11:16,343 --> 00:11:20,360
‫que docs, pero también quiero hacer algo más aquí.

258
00:11:20,360 --> 00:11:22,710
‫Básicamente, creemos una especie de

259
00:11:22,710 --> 00:11:25,150
‫reloj para medir cuánto tiempo lleva

260
00:11:25,150 --> 00:11:27,163
‫ejecutar la consulta actual.

261
00:11:28,120 --> 00:11:28,953
‫¿Está bien?

262
00:11:28,953 --> 00:11:30,770
‫Entonces, ¿cómo vamos a hacer eso?

263
00:11:30,770 --> 00:11:32,680
‫Bueno, bastante simple.

264
00:11:32,680 --> 00:11:36,180
‫Simplemente podemos establecer una propiedad en este objeto,

265
00:11:36,180 --> 00:11:39,810
‫porque este objeto de consulta es realmente un objeto normal.

266
00:11:39,810 --> 00:11:42,570
‫Por supuesto que tiene acceso a todos estos métodos,

267
00:11:42,570 --> 00:11:43,760
‫como find, pero

268
00:11:43,760 --> 00:11:45,020
‫también podemos usarlo para

269
00:11:45,020 --> 00:11:47,283
‫establecer cualquier propiedad que queramos en él.

270
00:11:48,660 --> 00:11:51,000
‫Entonces, nuevamente, solo un objeto regular.

271
00:11:51,000 --> 00:11:53,410
‫Y aquí podemos decir esto. inicio debe

272
00:11:53,410 --> 00:11:55,333
‫ser la fecha actual.

273
00:11:56,410 --> 00:11:57,243
‫¿Okey?

274
00:11:57,243 --> 00:11:59,380
‫Y entonces esto lo establecerá

275
00:11:59,380 --> 00:12:02,150
‫como la hora actual en milisegundos, ¿de acuerdo?

276
00:12:02,150 --> 00:12:05,320
‫Y entonces, aquí, en el middleware posterior, que se ejecutará

277
00:12:05,320 --> 00:12:08,200
‫después de que se haya ejecutado la consulta, podemos

278
00:12:08,200 --> 00:12:10,310
‫restar la hora actual menos la

279
00:12:10,310 --> 00:12:11,603
‫hora de inicio.

280
00:12:14,640 --> 00:12:15,833
‫Así que consola. log, consulta

281
00:12:18,470 --> 00:12:19,583
‫tomó, y ahora

282
00:12:21,240 --> 00:12:22,600
‫la fecha actual menos

283
00:12:26,970 --> 00:12:28,073
‫esto.

284
00:12:33,400 --> 00:12:34,423
‫inicio, milisegundos.

285
00:12:35,510 --> 00:12:38,295
‫Bien, vamos a guardarlo, y

286
00:12:38,295 --> 00:12:43,295
‫ahora intentemos ejecutar una consulta y ver nuestros resultados.

287
00:12:45,090 --> 00:12:46,469
‫¿Okey?

288
00:12:46,469 --> 00:12:48,390
‫Entonces, aquí tenemos todos nuestros recorridos,

289
00:12:48,390 --> 00:12:49,713
‫aquí tenemos la

290
00:12:50,700 --> 00:12:52,140
‫consola, y aclaremos eso.

291
00:12:52,140 --> 00:12:53,740
‫Hay muchas cosas ahí.

292
00:12:55,540 --> 00:12:56,763
‫Solicite de nuevo,

293
00:12:58,340 --> 00:13:00,480
‫y aquí están todos los resultados.

294
00:13:00,480 --> 00:13:03,210
‫Básicamente, estos son todos los recorridos que se encontraron, y ese

295
00:13:03,210 --> 00:13:06,490
‫es el resultado de la consola. registro de los documentos.

296
00:13:06,490 --> 00:13:09,890
‫Básicamente, los documentos que coincidían con la consulta.

297
00:13:09,890 --> 00:13:13,220
‫Pero ahora estoy interesado en esta primera consola. log, y entonces,

298
00:13:13,220 --> 00:13:17,670
‫aquí vemos "La consulta tomó 120 milisegundos", y ese fue básicamente

299
00:13:17,670 --> 00:13:19,970
‫el tiempo que pasó desde

300
00:13:19,970 --> 00:13:22,660
‫el principio, donde definimos esto, hasta después

301
00:13:22,660 --> 00:13:26,950
‫de que la consulta se ha ejecutado, en este momento.

302
00:13:26,950 --> 00:13:27,783
‫Está bien.

303
00:13:27,783 --> 00:13:29,910
‫Y eso es todo lo que tenía que

304
00:13:29,910 --> 00:13:31,550
‫mostrarte por ahora sobre el

305
00:13:31,550 --> 00:13:32,680
‫middleware de consultas, y

306
00:13:32,680 --> 00:13:34,370
‫al igual que antes, por supuesto

307
00:13:34,370 --> 00:13:35,380
‫que lo

308
00:13:35,380 --> 00:13:37,450
‫usaremos mucho a lo largo del curso,

309
00:13:37,450 --> 00:13:39,840
‫porque, como mencioné al principio, el middleware es realmente

310
00:13:39,840 --> 00:13:42,010
‫un concepto fundamental. eso es realmente importante para

311
00:13:42,010 --> 00:13:44,060
‫muchas cosas que necesitamos en nuestras aplicaciones.

312
00:13:44,060 --> 00:13:46,140
‫Así que casi hemos terminado de hablar de middleware.

313
00:13:46,140 --> 00:13:48,070
‫El siguiente es el último, que

314
00:13:48,070 --> 00:13:49,823
‫es el middleware de agregación.

