﻿1
00:00:01,100 --> 00:00:04,883
‫-: En este video, implementemos la actualización de documentos.

2
00:00:06,250 --> 00:00:09,810
‫Entonces, aquí, en nuestro controlador de recorrido de actualización, comencemos por

3
00:00:09,810 --> 00:00:11,803
‫convertirlo en una función asíncrona.

4
00:00:14,650 --> 00:00:18,250
‫Luego, o intente atrapar el bloque, así que estoy haciendo

5
00:00:18,250 --> 00:00:22,130
‫esto muy rápido ahora, porque ya estamos acostumbrados a esto en

6
00:00:22,130 --> 00:00:22,963
‫este momento.

7
00:00:24,330 --> 00:00:25,180
‫¿Derecha?

8
00:00:25,180 --> 00:00:28,210
‫Entonces, esto entra en el bloque try y

9
00:00:28,210 --> 00:00:32,440
‫luego simplemente obtengo este, aquí, del bloque catch de esta

10
00:00:33,450 --> 00:00:34,693
‫otra función.

11
00:00:36,130 --> 00:00:37,653
‫Está bien, entonces.

12
00:00:39,230 --> 00:00:40,660
‫Aquí vamos.

13
00:00:40,660 --> 00:00:42,430
‫Y ahora, lo que

14
00:00:42,430 --> 00:00:44,620
‫tenemos que hacer aquí al comienzo de

15
00:00:44,620 --> 00:00:47,140
‫este bloque de prueba es básicamente consultar

16
00:00:47,140 --> 00:00:50,580
‫el documento que queremos actualizar y luego actualizarlo, ¿de acuerdo?

17
00:00:50,580 --> 00:00:51,730
‫Y realmente podemos

18
00:00:51,730 --> 00:00:54,250
‫hacer todo eso en un solo comando con mangosta.

19
00:00:54,250 --> 00:00:57,160
‫Y recuerda, de nuevo, que actualizaremos la gira

20
00:00:57,160 --> 00:00:59,370
‫basándonos en una identificación, ¿de acuerdo?

21
00:00:59,370 --> 00:01:03,320
‫Entonces, es una situación similar a esta aquí,

22
00:01:03,320 --> 00:01:05,590
‫donde encontramos por ID.

23
00:01:05,590 --> 00:01:08,130
‫Y ahora, podemos hacer algo muy

24
00:01:08,130 --> 00:01:11,380
‫similar, que es buscar por ID y actualizar.

25
00:01:11,380 --> 00:01:13,713
‫Nuevamente, todo en una sola consulta.

26
00:01:14,600 --> 00:01:16,790
‫Entonces, hagamos una gira.

27
00:01:20,400 --> 00:01:22,963
‫findByID y actualizar.

28
00:01:24,150 --> 00:01:27,520
‫Bien, entonces, ¿qué tenemos que pasar aquí?

29
00:01:27,520 --> 00:01:31,290
‫Bueno, por supuesto, el ID, para que primero encontremos el documento

30
00:01:31,290 --> 00:01:33,313
‫que se va a actualizar.

31
00:01:34,620 --> 00:01:39,030
‫Entonces, al igual que antes, eso es req. params. ID, y

32
00:01:39,030 --> 00:01:42,690
‫luego los datos que realmente queremos cambiar.

33
00:01:42,690 --> 00:01:44,750
‫Y esos datos estarán en el cuerpo, al

34
00:01:44,750 --> 00:01:46,763
‫igual que en la solicitud de publicación.

35
00:01:48,430 --> 00:01:51,330
‫Entonces req. cuerpo, ¿de acuerdo?

36
00:01:51,330 --> 00:01:53,470
‫Y luego, en realidad, como

37
00:01:53,470 --> 00:01:57,050
‫tercer argumento, también podemos parchear algunas opciones, y lo haremos.

38
00:01:57,050 --> 00:02:00,600
‫Y la primera opción que quiero especificar es nueva

39
00:02:01,540 --> 00:02:03,690
‫y establecerla en verdadero.

40
00:02:03,690 --> 00:02:06,760
‫Porque de esta manera, entonces el nuevo documento actualizado

41
00:02:06,760 --> 00:02:08,870
‫es el que se devolverá.

42
00:02:08,870 --> 00:02:11,810
‫Y dado que queremos devolver ese documento

43
00:02:11,810 --> 00:02:14,410
‫actualizado al cliente, siempre queremos

44
00:02:14,410 --> 00:02:18,380
‫que este método devuelva ese nuevo documento, ¿de acuerdo?

45
00:02:18,380 --> 00:02:22,160
‫De esta manera, tiene sentido esperar

46
00:02:22,160 --> 00:02:27,160
‫esta consulta y luego guardarla en una nueva variable.

47
00:02:28,710 --> 00:02:30,720
‫Entonces simplemente llámelo tour

48
00:02:30,720 --> 00:02:34,743
‫aquí, y luego nuevamente, espere el resultado de esta consulta.

49
00:02:35,640 --> 00:02:38,200
‫Entonces, todos estos métodos que hemos estado

50
00:02:38,200 --> 00:02:41,923
‫usando en el recorrido hasta ahora, así que busque por

51
00:02:43,220 --> 00:02:47,300
‫ID y actualice, o, bueno, no cree realmente, pero busque por

52
00:02:47,300 --> 00:02:51,350
‫ID o busque, todos estos devolverán consultas, por lo que son

53
00:02:51,350 --> 00:02:53,320
‫consultas métodos y déjame

54
00:02:53,320 --> 00:02:55,700
‫mostrarte eso en la documentación de mangosta.

55
00:02:55,700 --> 00:02:58,510
‫Entonces, hasta este punto, no hemos echado un vistazo

56
00:02:58,510 --> 00:03:00,300
‫a la documentación hasta ahora.

57
00:03:00,300 --> 00:03:01,850
‫Entonces, hagámoslo rápidamente.

58
00:03:01,850 --> 00:03:05,080
‫Entonces, en el modelo, que en nuestro caso es tour,

59
00:03:05,080 --> 00:03:07,610
‫tenemos todos estos métodos de consulta, ¿verdad?

60
00:03:07,610 --> 00:03:11,920
‫Entonces ves buscar, ves buscar uno, ves buscar por ID, que es

61
00:03:11,920 --> 00:03:14,530
‫solo una forma abreviada de encontrar uno.

62
00:03:14,530 --> 00:03:17,460
‫Luego verá buscar por ID y actualizar, que

63
00:03:17,460 --> 00:03:19,320
‫es el que estamos

64
00:03:19,320 --> 00:03:22,018
‫usando actualmente, y que, de hecho, es solo

65
00:03:22,018 --> 00:03:26,440
‫una forma abreviada de buscar uno y actualizar, donde estamos solicitando una ID,

66
00:03:26,440 --> 00:03:30,380
‫muy similar a lo que Tuviste en la última conferencia, ¿de acuerdo?

67
00:03:30,380 --> 00:03:33,630
‫Y, de hecho, podemos hacer clic en cualquiera de

68
00:03:33,630 --> 00:03:36,340
‫estos, así que hagamos el que estamos

69
00:03:36,340 --> 00:03:39,931
‫usando actualmente, y eso realmente nos llevará a la documentación de

70
00:03:39,931 --> 00:03:43,560
‫la API que nos muestra cómo usar realmente un determinado método.

71
00:03:43,560 --> 00:03:46,650
‫Entonces, ve que pasamos el ID, por

72
00:03:46,650 --> 00:03:50,550
‫lo que el valor, fuera del ID para consultar, pasamos el

73
00:03:50,550 --> 00:03:55,320
‫objeto con los datos que se actualizarán y pasamos un objeto de opciones.

74
00:03:55,320 --> 00:03:57,410
‫Y aquí abajo podemos ver

75
00:03:57,410 --> 00:03:59,770
‫las opciones que podemos establecer,

76
00:03:59,770 --> 00:04:03,360
‫así que recuerde, simplemente establecemos nuevo en verdadero y,

77
00:04:03,360 --> 00:04:06,570
‫como dice aquí, devolverá el documento modificado en

78
00:04:06,570 --> 00:04:08,480
‫lugar del original.

79
00:04:08,480 --> 00:04:11,500
‫Ahora, otro que realmente queremos establecer en

80
00:04:11,500 --> 00:04:15,690
‫verdadero es esta ejecución de validadores, de modo que cada vez

81
00:04:15,690 --> 00:04:19,160
‫que actualicemos un determinado documento, los validadores que especificamos

82
00:04:19,160 --> 00:04:22,334
‫en el esquema se ejecutarán nuevamente, ¿de acuerdo?

83
00:04:22,334 --> 00:04:26,050
‫Y hablaremos mucho sobre validadores y validación un poco

84
00:04:26,050 --> 00:04:27,600
‫más adelante en la

85
00:04:27,600 --> 00:04:31,770
‫sección, pero lo dejaré aquí por ahora para que, básicamente, no

86
00:04:31,770 --> 00:04:32,743
‫lo olvidemos.

87
00:04:34,340 --> 00:04:35,530
‫¿Okey?

88
00:04:35,530 --> 00:04:38,810
‫Guárdalo ahora, y en realidad quiero volver aquí

89
00:04:38,810 --> 00:04:40,880
‫solo para mostrarte cuántos

90
00:04:40,880 --> 00:04:43,210
‫métodos tenemos en la mangosta.

91
00:04:43,210 --> 00:04:46,250
‫Entonces, en el modelo, tenemos todos estos métodos aquí que

92
00:04:46,250 --> 00:04:47,753
‫ven en esta lista.

93
00:04:48,620 --> 00:04:51,300
‫Entonces, por ejemplo, usamos create antes,

94
00:04:51,300 --> 00:04:52,833
‫también usamos find.

95
00:04:53,850 --> 00:04:54,683
‫¿Okey?

96
00:04:54,683 --> 00:04:57,090
‫Entonces, los que ven aquí en la parte superior,

97
00:04:57,090 --> 00:04:59,350
‫están disponibles directamente en el modelo, y ese,

98
00:04:59,350 --> 00:05:01,363
‫en nuestro caso, es el tour.

99
00:05:02,300 --> 00:05:04,320
‫Ahora, aquí abajo, por ejemplo, también

100
00:05:04,320 --> 00:05:08,520
‫ve el modelo. prototipo. seguro por ejemplo.

101
00:05:08,520 --> 00:05:10,770
‫Y este, en realidad, también

102
00:05:10,770 --> 00:05:14,290
‫lo usamos justo cuando comenzamos a trabajar con mangostas.

103
00:05:14,290 --> 00:05:16,650
‫Así que no estoy seguro de si está familiarizado con esto,

104
00:05:16,650 --> 00:05:20,070
‫pero en el modelo de script java. prototipo siempre significa un

105
00:05:20,070 --> 00:05:23,560
‫objeto creado a partir de una clase, o en este caso,

106
00:05:23,560 --> 00:05:25,330
‫creado a partir de un modelo.

107
00:05:25,330 --> 00:05:29,010
‫Y entonces, el método de guardar aquí, se refiere a un método

108
00:05:29,010 --> 00:05:32,530
‫de guardar llamado en un documento y no en un recorrido.

109
00:05:32,530 --> 00:05:35,370
‫Y recuerda que eso es exactamente lo que hicimos.

110
00:05:35,370 --> 00:05:37,670
‫Y creo que todavía lo tengo aquí como comentario.

111
00:05:40,430 --> 00:05:41,550
‫Sí, aquí mismo.

112
00:05:41,550 --> 00:05:45,717
‫Entonces, tuvimos un recorrido, esta nueva variable de recorrido aquí que

113
00:05:45,717 --> 00:05:48,600
‫se creó a partir del modelo de

114
00:05:48,600 --> 00:05:53,220
‫recorrido, por lo que este nuevo recorrido aquí obtuvo acceso al método de

115
00:05:53,220 --> 00:05:57,320
‫guardado porque es parte del objeto prototipo de esta clase.

116
00:05:57,320 --> 00:06:00,280
‫Muy bien, ahora no quiero aburrirlos con los

117
00:06:00,280 --> 00:06:02,760
‫fundamentos del script java, pero es

118
00:06:02,760 --> 00:06:05,620
‫importante para entender la documentación, ¿de acuerdo?

119
00:06:05,620 --> 00:06:09,320
‫Porque en algún momento necesitarás usar documentación,

120
00:06:09,320 --> 00:06:11,520
‫porque mangosta es yute.

121
00:06:11,520 --> 00:06:13,700
‫Y de hecho, te enseñaré muchas de las

122
00:06:13,700 --> 00:06:16,520
‫cosas que son importantes a lo largo de todo este

123
00:06:16,520 --> 00:06:19,240
‫curso, pero a veces aún necesitarás algo que no te

124
00:06:19,240 --> 00:06:20,740
‫mostré en este curso.

125
00:06:20,740 --> 00:06:23,060
‫Por eso, es importante que

126
00:06:23,060 --> 00:06:25,900
‫también comprenda realmente la documentación, ¿de acuerdo?

127
00:06:25,900 --> 00:06:29,360
‫Y así, de nuevo, cuando veas model. prototipo aquí, sabe

128
00:06:29,360 --> 00:06:31,810
‫que el método de guardado aquí

129
00:06:31,810 --> 00:06:34,800
‫estará disponible en todas las instancias creadas a

130
00:06:34,800 --> 00:06:37,330
‫través de un modelo, ¿de acuerdo?

131
00:06:37,330 --> 00:06:39,160
‫Y entonces, no el modelo en sí.

132
00:06:39,160 --> 00:06:42,000
‫Entonces, por ejemplo, si probaste tour. salvo que

133
00:06:42,000 --> 00:06:43,660
‫no podría utilizarlo.

134
00:06:43,660 --> 00:06:46,960
‫Le daría un error, pero en cambio, si intenta guardar

135
00:06:46,960 --> 00:06:49,700
‫en un documento creado a través del recorrido,

136
00:06:49,700 --> 00:06:52,120
‫entonces, por supuesto, funcionará, ¿de acuerdo?

137
00:06:52,120 --> 00:06:53,840
‫Espero que tenga sentido.

138
00:06:53,840 --> 00:06:56,670
‫Y, de todos modos, ves que tenemos

139
00:06:56,670 --> 00:07:00,310
‫muchas otras cosas, así que tenemos que consultar, de lo

140
00:07:00,310 --> 00:07:04,030
‫que ya hablamos, porque, por ejemplo, buscar por ID y actualizar,

141
00:07:04,030 --> 00:07:08,320
‫o buscar, o buscar por ID, todos estos devolver objetos de consulta.

142
00:07:08,320 --> 00:07:10,860
‫Entonces, más adelante, cuando implementemos

143
00:07:10,860 --> 00:07:15,150
‫cosas como ordenar o filtrar, usaremos este objeto de consulta.

144
00:07:15,150 --> 00:07:15,983
‫¿Okey?

145
00:07:15,983 --> 00:07:19,751
‫Entonces, regresemos, nos salimos del camino aquí al mirar la documentación,

146
00:07:19,751 --> 00:07:22,210
‫pero, nuevamente, creo que es realmente importante

147
00:07:22,210 --> 00:07:24,230
‫comenzar a mirar la

148
00:07:24,230 --> 00:07:26,370
‫documentación, porque un curso como este

149
00:07:26,370 --> 00:07:29,670
‫solo puede llevarte hasta cierto punto, y yo Espero que

150
00:07:29,670 --> 00:07:32,570
‫ya lo sepas en este momento, ¿de acuerdo?

151
00:07:32,570 --> 00:07:35,810
‫Es muy importante que también puedas encontrar información por

152
00:07:35,810 --> 00:07:38,450
‫tu cuenta, y quiero mostrarte cómo hacerlo

153
00:07:38,450 --> 00:07:40,560
‫también en este curso.

154
00:07:40,560 --> 00:07:43,460
‫De todos modos, enviemos ahora también este

155
00:07:43,460 --> 00:07:46,820
‫tour recién actualizado al cliente, lo que, en

156
00:07:46,820 --> 00:07:49,690
‫este momento, no estamos haciendo, porque

157
00:07:49,690 --> 00:07:52,810
‫simplemente tenemos esta cadena de tour actualizada aquí.

158
00:07:52,810 --> 00:07:56,470
‫Así que deshagámonos de eso y simplemente enviemos a la gira.

159
00:07:56,470 --> 00:08:00,140
‫Y recuerde que esto, de hecho, es en realidad esto.

160
00:08:00,140 --> 00:08:03,940
‫Entonces, la propiedad tour se establece en el objeto tour, pero, gracias

161
00:08:03,940 --> 00:08:07,360
‫a ES6, ya no tenemos que hacerlo cuando el

162
00:08:07,360 --> 00:08:11,160
‫nombre de la propiedad tiene el mismo nombre que el valor.

163
00:08:11,160 --> 00:08:13,310
‫Bien, deshagámonos de eso.

164
00:08:13,310 --> 00:08:15,413
‫Eso hace que nuestro código se vea un poco mejor.

165
00:08:17,350 --> 00:08:19,373
‫Bien, y ahora probémoslo.

166
00:08:20,980 --> 00:08:25,980
‫Volviendo al cartero, aquí tenemos la ruta del tour actualizada.

167
00:08:26,079 --> 00:08:27,960
‫Entonces, hagámoslo con

168
00:08:27,960 --> 00:08:30,983
‫esta misma identificación que usamos antes.

169
00:08:34,310 --> 00:08:35,550
‫Entonces, este.

170
00:08:35,550 --> 00:08:38,827
‫Luego llegamos al cuerpo, aquí, y cambiemos ...

171
00:08:39,761 --> 00:08:42,250
‫Bueno, ¿qué vamos a cambiar aquí?

172
00:08:42,250 --> 00:08:46,493
‫Bueno, cambiemos el precio a 500.

173
00:08:48,040 --> 00:08:51,383
‫Entonces, precio, 500, envíalo, y de hecho

174
00:08:52,630 --> 00:08:55,700
‫esto nos da el objeto recién

175
00:08:55,700 --> 00:08:58,250
‫actualizado con el precio ya

176
00:08:58,250 --> 00:09:00,730
‫establecido en 500.

177
00:09:00,730 --> 00:09:03,410
‫Y si ahora obtenemos todos los recorridos, entonces eso,

178
00:09:03,410 --> 00:09:05,150
‫por supuesto, debería reflejarse aquí.

179
00:09:05,150 --> 00:09:06,480
‫Y aquí está.

180
00:09:06,480 --> 00:09:09,223
‫Pero ahora, digamos que lo configuramos como una cadena.

181
00:09:13,930 --> 00:09:15,920
‫Entonces, echemos un vistazo a lo que sucede.

182
00:09:15,920 --> 00:09:17,930
‫Bueno, entonces obtenemos un error.

183
00:09:17,930 --> 00:09:21,090
‫Y eso es porque volvimos a ejecutar los validadores.

184
00:09:21,090 --> 00:09:23,497
‫Entonces, recuerda que tenemos ... ¿Dónde

185
00:09:24,900 --> 00:09:25,760
‫está eso?

186
00:09:27,720 --> 00:09:28,553
‫Oh si, aqui.

187
00:09:28,553 --> 00:09:32,070
‫Entonces aquí especificamos que los validadores deben ejecutarse nuevamente.

188
00:09:32,070 --> 00:09:36,130
‫Entonces, ahora mismo el precio ya no es un número

189
00:09:36,130 --> 00:09:38,050
‫como se esperaba, ¿verdad?

190
00:09:38,050 --> 00:09:41,580
‫Entonces, en un esquema, decimos que el precio debe ser un

191
00:09:41,580 --> 00:09:44,580
‫número, pero, por supuesto, el script java o

192
00:09:44,580 --> 00:09:49,290
‫la mangosta, en realidad, no pueden, básicamente, convertir esta cadena aquí en un número.

193
00:09:49,290 --> 00:09:50,820
‫Pero eso es lo que esperamos.

194
00:09:50,820 --> 00:09:53,350
‫Entonces aquí dice que el tipo debe ser número.

195
00:09:53,350 --> 00:09:55,580
‫Y entonces, por lo tanto, nos

196
00:09:55,580 --> 00:09:58,540
‫da un error, simplemente porque estamos ejecutando los validadores nuevamente.

197
00:09:58,540 --> 00:10:01,530
‫Regresemos a 500 y luego, por

198
00:10:01,530 --> 00:10:02,730
‫supuesto, volverá.

199
00:10:02,730 --> 00:10:05,430
‫Muy bien, ahora, tenga en cuenta que en realidad

200
00:10:05,430 --> 00:10:07,750
‫estamos haciendo una solicitud de parche aquí.

201
00:10:07,750 --> 00:10:11,000
‫Ahora, si estuviéramos haciendo una solicitud de colocación, recuerde,

202
00:10:11,000 --> 00:10:13,670
‫entonces esperaría que el objeto original se

203
00:10:13,670 --> 00:10:15,190
‫reemplazara por completo

204
00:10:15,190 --> 00:10:18,150
‫con el nuevo que se envió, ¿de acuerdo?

205
00:10:18,150 --> 00:10:20,280
‫Entonces, en ese caso, ya no

206
00:10:20,280 --> 00:10:22,272
‫funcionaría de la forma

207
00:10:22,272 --> 00:10:25,420
‫en que lo implementamos aquí porque este simplemente actualizó

208
00:10:25,420 --> 00:10:29,360
‫los campos que son diferentes aquí en el cuerpo, ¿de acuerdo?

209
00:10:29,360 --> 00:10:32,150
‫Pero de todos modos, creo que el método

210
00:10:32,150 --> 00:10:34,400
‫de parche es en realidad mucho

211
00:10:34,400 --> 00:10:38,490
‫más útil, por lo que será el único que se implemente aquí.

212
00:10:38,490 --> 00:10:42,300
‫Genial, tenemos tres de nuestras cuatro operaciones correctas

213
00:10:42,300 --> 00:10:44,910
‫implementadas, solo queda una más, que

214
00:10:44,910 --> 00:10:46,463
‫será eliminada.

