1
00:00:03,680 --> 00:00:07,560
En este ejercicio, vamos a seguir trabajando en

2
00:00:07,560 --> 00:00:11,190
el nodo Servidor Mangosta que desarrollamos en el ejercicio anterior.

3
00:00:11,190 --> 00:00:13,770
Haremos otra variación de eso.

4
00:00:13,770 --> 00:00:19,190
Además, también veremos cómo Mangoose soporta los subdocumentos,

5
00:00:19,190 --> 00:00:22,760
y esto nos permite almacenar un documento dentro de

6
00:00:22,760 --> 00:00:26,860
un documento para almacenar información adicional.

7
00:00:26,860 --> 00:00:31,055
Veamos eso en el siguiente ejercicio.

8
00:00:31,055 --> 00:00:36,905
Continuando con el ejemplo en el que hemos estado trabajando, ahora,

9
00:00:36,905 --> 00:00:39,680
en el archivo index.js,

10
00:00:39,680 --> 00:00:46,040
ahora veremos una nueva forma de crear un plato y agregarlo a nuestra aplicación.

11
00:00:46,040 --> 00:00:51,590
Así, antes habíamos hecho var NewDish y platos y definir el plato.

12
00:00:51,590 --> 00:00:57,980
Ahora, en este caso vamos a utilizar un nuevo método llamado platos crear que toma,

13
00:00:57,980 --> 00:01:05,950
como parámetro, el NewDish para crear y luego lo guarda en nuestra aplicación.

14
00:01:05,950 --> 00:01:11,165
Por lo tanto, en lugar de hacer este NewDish guardar,

15
00:01:11,165 --> 00:01:18,550
simplemente podemos eliminar eso y tratar directamente con el método de creación de platos aquí.

16
00:01:18,550 --> 00:01:22,850
Por lo tanto, el método de creación de platos tomará como parámetro

17
00:01:22,850 --> 00:01:27,320
un nuevo documento que debe almacenarse en nuestra base de datos,

18
00:01:27,320 --> 00:01:31,355
y luego crea y agrega el documento a la base de datos.

19
00:01:31,355 --> 00:01:35,285
A partir de entonces, podemos continuar con el resto del ejercicio.

20
00:01:35,285 --> 00:01:40,390
Esta modificación menor mostrará

21
00:01:40,390 --> 00:01:45,790
que la misma aplicación se ejecuta exactamente de la misma manera que antes.

22
00:01:45,790 --> 00:01:47,365
Entonces, con este cambio,

23
00:01:47,365 --> 00:01:50,080
permítanme cambiar la sangría

24
00:01:50,080 --> 00:01:56,370
aquí para que el encadenamiento de los métodos entonces sea muy claro.

25
00:01:56,370 --> 00:02:01,130
Por lo tanto, primero hacemos un plato crear que devolverá una promesa,

26
00:02:01,130 --> 00:02:04,300
y luego cambiaremos al entonces y luego llevaremos a cabo

27
00:02:04,300 --> 00:02:10,255
los pasos restantes en el plato creado.

28
00:02:10,255 --> 00:02:15,905
Vamos a guardar los cambios y luego vamos a echar un vistazo a esta versión de nuestro servidor.

29
00:02:15,905 --> 00:02:17,475
Ir al terminal,

30
00:02:17,475 --> 00:02:20,675
una vez más, ejecutando la aplicación,

31
00:02:20,675 --> 00:02:28,040
vemos que creará exactamente lo mismo que la variación anterior del servidor.

32
00:02:28,040 --> 00:02:33,290
Por lo tanto, estamos creando un nuevo plato aquí y luego insertarlo en

33
00:02:33,290 --> 00:02:36,800
la base de datos y luego

34
00:02:36,800 --> 00:02:40,760
estamos recuperando ese plato y luego imprimiendo en la pantalla.

35
00:02:40,760 --> 00:02:43,610
Con este cambio, este es un buen momento para que hagamos

36
00:02:43,610 --> 00:02:47,795
un git commit con el mensaje Mangosta parte dos.

37
00:02:47,795 --> 00:02:57,450
Entonces, vamos a verificar el estado de git y luego agregar el archivo al repositorio,

38
00:02:57,450 --> 00:03:06,390
y luego hacer una confirmación de git con el mensaje Mongoose parte dos.

39
00:03:06,390 --> 00:03:08,800
Continuando con el ejercicio,

40
00:03:08,800 --> 00:03:13,910
en el siguiente paso vamos a añadir un subdocumento

41
00:03:13,910 --> 00:03:19,385
al documento y ver cómo se pueden almacenar los subdocumentos en nuestra base de datos.

42
00:03:19,385 --> 00:03:22,385
Entonces, yendo al archivo dishes.js,

43
00:03:22,385 --> 00:03:30,135
voy a agregar otro esquema en mi archivo dishes.js llamado

44
00:03:30,135 --> 00:03:37,360
como esquema de comentario y

45
00:03:37,360 --> 00:03:42,230
luego definir esto como nuevo esquema.

46
00:03:42,320 --> 00:03:44,880
En este esquema de comentarios,

47
00:03:44,880 --> 00:03:46,895
como ya habrías esperado,

48
00:03:46,895 --> 00:03:51,360
vamos a usar esto para almacenar comentarios sobre el plato.

49
00:03:51,360 --> 00:03:56,380
Por lo tanto, los comentarios contendrán un campo de calificación que

50
00:03:56,380 --> 00:04:02,930
es del número de tipo,

51
00:04:02,930 --> 00:04:07,250
y su valor mínimo es uno, el

52
00:04:07,250 --> 00:04:15,290
valor máximo es cinco y obligatorio es verdadero.

53
00:04:15,290 --> 00:04:20,120
Por lo tanto, puede ver que cuando utiliza un campo con el número de tipo,

54
00:04:20,120 --> 00:04:26,085
puede especificar los límites para él si decide hacerlo.

55
00:04:26,085 --> 00:04:35,640
Entonces, el siguiente campo es un campo de comentario que sería de la cadena de tipo.

56
00:04:35,640 --> 00:04:41,780
Por lo tanto, esto almacena un mensaje y luego requerido

57
00:04:41,780 --> 00:04:49,300
es verdadero y luego también agregaremos otro campo llamado autor,

58
00:04:51,220 --> 00:05:01,120
que es de la cadena de tipo y requerido es verdadero.

59
00:05:01,120 --> 00:05:07,600
También agregaremos el campo de marca de tiempo para esto,

60
00:05:07,600 --> 00:05:11,875
y estableceremos que en true.

61
00:05:11,875 --> 00:05:14,570
Por lo tanto, para cada comentario que se agrega,

62
00:05:14,570 --> 00:05:17,570
también almacenaremos la marca de tiempo correspondiente.

63
00:05:17,570 --> 00:05:20,990
Por lo tanto, ahora que hemos declarado un esquema de comentarios,

64
00:05:20,990 --> 00:05:27,465
podemos seguir adelante y modificar el esquema del plato para poder almacenar comentarios.

65
00:05:27,465 --> 00:05:29,745
Por lo tanto, dentro del esquema de platos,

66
00:05:29,745 --> 00:05:37,370
podemos agregar comentarios

67
00:05:37,370 --> 00:05:44,750
que es una matriz del esquema de comentario tipo,

68
00:05:44,750 --> 00:05:49,705
por lo que significa que cada objeto de plato,

69
00:05:49,705 --> 00:05:57,860
documento de plato puede tener múltiples comentarios almacenados dentro de una matriz dentro del documento de plato.

70
00:05:57,860 --> 00:06:04,830
Por lo tanto, este es el comentario documentos se convierte en sub-documentos dentro de un documento de plato.

71
00:06:04,830 --> 00:06:08,524
Por lo tanto, estamos almacenando todos los comentarios sobre el plato dentro

72
00:06:08,524 --> 00:06:13,765
del plato en sí como una variedad de documentos de comentarios.

73
00:06:13,765 --> 00:06:20,825
Por lo tanto, este es el uso del subdocumento en Mangoose.

74
00:06:20,825 --> 00:06:28,395
Después de esto, vayamos al archivo index.js y luego modifiquemos nuestro archivo index.js.

75
00:06:28,395 --> 00:06:32,640
Aquí, crean el plato como antes.

76
00:06:32,640 --> 00:06:35,010
Luego, después de crear el plato,

77
00:06:35,010 --> 00:06:38,715
luego consolamos el registro del plato.

78
00:06:38,715 --> 00:06:43,080
A partir de entonces, actualizaremos el plato.

79
00:06:43,080 --> 00:06:49,925
Por lo tanto, diremos que los platos se encuentran por identificación y actualización.

80
00:06:49,925 --> 00:06:55,345
Por lo tanto, vamos a modificar el plato que acabamos de insertar en el paso anterior.

81
00:06:55,345 --> 00:06:58,690
Por lo tanto, diremos: «Encuentra por ID y actualiza».

82
00:06:58,690 --> 00:07:01,930
Y vamos a abastecer.

83
00:07:01,930 --> 00:07:05,305
En esto toma dos parámetros,

84
00:07:05,305 --> 00:07:10,045
el primer parámetro es el plato.

85
00:07:10,045 --> 00:07:15,205
Ahora, este plato. _id, por supuesto, se refiere a este plato que

86
00:07:15,205 --> 00:07:19,895
acabamos de insertar, y luego vamos a modificar ese mismo plato en el siguiente paso.

87
00:07:19,895 --> 00:07:22,420
Entonces, diremos, «Dish. _id.» Y luego,

88
00:07:22,420 --> 00:07:34,610
entre corchetes, especificamos $set, descripción,

89
00:07:36,600 --> 00:07:45,580
prueba actualizada y nuevo verdadero.

90
00:07:45,580 --> 00:07:49,240
Por lo tanto, esto, estamos modificando el plato que

91
00:07:49,240 --> 00:07:54,865
acabamos de insertar actualizando su descripción allí.

92
00:07:54,865 --> 00:07:58,735
Ahora, esto tiene que estar encerrado dentro.

93
00:07:58,735 --> 00:08:01,310
Esta segunda bandera que estamos suministrando aquí,

94
00:08:01,310 --> 00:08:03,985
nuevo colon igual a verdadero,

95
00:08:03,985 --> 00:08:07,895
significa que una vez que la actualización del plato esté completa,

96
00:08:07,895 --> 00:08:11,075
entonces esto

97
00:08:11,075 --> 00:08:14,530
nos devolverá el plato, plato actualizado.

98
00:08:14,530 --> 00:08:20,350
Entonces, esa es la razón para usar esta bandera aquí, digamos, nuevo verdadero.

99
00:08:20,350 --> 00:08:25,275
Entonces, este plato será devuelto en el siguiente paso.

100
00:08:25,275 --> 00:08:32,905
Y entonces, vamos a tomar ese plato y luego imprimirlo.

101
00:08:32,905 --> 00:08:34,540
Entonces, en el siguiente paso,

102
00:08:34,540 --> 00:08:41,845
vamos a modificar esto y decir, «Esto, luego plato».

103
00:08:41,845 --> 00:08:45,790
Y luego, haremos un registro de la consola del plato.

104
00:08:45,790 --> 00:08:55,060
Luego, después de esto, vamos a insertar un comentario en el plato.

105
00:08:55,060 --> 00:09:00,405
Por lo tanto, vamos a decir, «plato.comentarios.Push.»

106
00:09:00,405 --> 00:09:04,420
Recordemos que los comentarios son un campo dentro del plato.

107
00:09:04,420 --> 00:09:06,930
Por lo tanto, volviendo al esquema,

108
00:09:06,930 --> 00:09:12,685
vemos que estos comentarios son una matriz del tipo CommentSchema.

109
00:09:12,685 --> 00:09:16,360
Entonces, lo que significa que podemos insertar un elemento en esta matriz.

110
00:09:16,360 --> 00:09:17,700
Así que, volviendo aquí

111
00:09:17,700 --> 00:09:21,180
, diremos: «Los comentarios del plato empujan».

112
00:09:21,180 --> 00:09:27,380
Y luego, vamos a meter un documento de comentario en el plato aquí.

113
00:09:27,380 --> 00:09:31,415
Por lo tanto, voy a decir, «Los comentarios del plato empujan.»

114
00:09:31,415 --> 00:09:33,990
Y especifique los campos aquí.

115
00:09:33,990 --> 00:10:00,540
Por lo tanto, diremos, «Calificación cinco, comentario y autor».

116
00:10:07,890 --> 00:10:17,155
Y así, esto empujará este comentario en el campo de comentarios de este plato específico.

117
00:10:17,155 --> 00:10:20,065
Así que, ahora que hemos modificado el plato,

118
00:10:20,065 --> 00:10:24,655
el siguiente paso que vamos a hacer es,

119
00:10:24,655 --> 00:10:30,030
déjame cerrar esto y luego ponerlo en él, luego allí.

120
00:10:30,030 --> 00:10:32,400
Voy a volver y arreglarlo en poco tiempo.

121
00:10:32,400 --> 00:10:34,555
Entonces, ahora que hemos modificado el plato,

122
00:10:34,555 --> 00:10:37,630
tenemos que salvar el plato.

123
00:10:37,630 --> 00:10:42,430
Por lo tanto, diremos, «Regresa el plato seguro».

124
00:10:42,430 --> 00:10:44,280
Entonces, en este paso,

125
00:10:44,280 --> 00:10:47,520
estamos insertando un comentario en el plato,

126
00:10:47,520 --> 00:10:51,055
el plato que acabamos de crear y actualizar,

127
00:10:51,055 --> 00:10:55,360
y luego estamos guardando ese comentario;

128
00:10:55,360 --> 00:11:00,350
y luego, esto devolverá el plato.

129
00:11:00,350 --> 00:11:07,480
Y cuando el plato se devuelve en la siguiente devolución de llamada,

130
00:11:07,480 --> 00:11:15,160
voy a decir, «plato de registro de consola».

131
00:11:15,160 --> 00:11:16,240
Y luego, después de eso,

132
00:11:16,240 --> 00:11:17,920
diremos, «Regresa».

133
00:11:17,920 --> 00:11:22,435
Entonces, con esto, hemos modificado nuestro archivo index.js.

134
00:11:22,435 --> 00:11:27,265
Vamos a guardar los cambios y mirar esta aplicación.

135
00:11:27,265 --> 00:11:29,135
Ir a la terminal,

136
00:11:29,135 --> 00:11:34,770
vamos a ejecutar npm start y luego ver el valor resultante aquí.

137
00:11:34,770 --> 00:11:38,570
Así que, volviendo atrás, vemos que en el primer paso,

138
00:11:38,570 --> 00:11:45,430
hemos creado este plato aquí con el nombre y la descripción como hemos dado anteriormente.

139
00:11:45,430 --> 00:11:49,675
Y luego, una vez creado el plato,

140
00:11:49,675 --> 00:11:50,980
en el segundo paso,

141
00:11:50,980 --> 00:11:55,730
actualizamos el plato y luego imprimimos la versión actualizada del plato.

142
00:11:55,730 --> 00:11:59,325
Por lo tanto, la versión actualizada del plato se imprime allí.

143
00:11:59,325 --> 00:12:03,940
Y puede ver que la descripción se ha actualizado desde el caso anterior,

144
00:12:03,940 --> 00:12:10,210
pero el id sigue siendo exactamente el mismo que el plato que creamos anteriormente.

145
00:12:10,210 --> 00:12:11,720
Y el campo de comentarios,

146
00:12:11,720 --> 00:12:12,875
como se puede ver aquí,

147
00:12:12,875 --> 00:12:15,150
es una matriz vacía y el ahumado.

148
00:12:15,150 --> 00:12:22,555
En tercer paso, empujamos el comentario en nuestro plato aquí;

149
00:12:22,555 --> 00:12:25,560
y luego, este comentario en particular que

150
00:12:25,560 --> 00:12:28,880
agregamos se ha añadido a esta matriz de comentarios.

151
00:12:28,880 --> 00:12:32,475
Por lo tanto, se puede ver ese comentario aquí,

152
00:12:32,475 --> 00:12:39,440
y este es el plato actualizado que ahora se ha impreso en la pantalla aquí.

153
00:12:39,440 --> 00:12:45,270
Por lo tanto, se puede ver que hemos hecho varios pasos uno tras otro con nuestro plato.

154
00:12:45,270 --> 00:12:46,840
Primero creamos el plato,

155
00:12:46,840 --> 00:12:48,460
luego actualizamos el plato,

156
00:12:48,460 --> 00:12:51,340
luego insertamos un comentario en el plato,

157
00:12:51,340 --> 00:12:55,745
que es un subdocumento dentro del documento del plato;

158
00:12:55,745 --> 00:12:59,035
y luego, imprimimos el resultado para usted.

159
00:12:59,035 --> 00:13:02,390
Con esto, completamos este ejercicio.

160
00:13:02,390 --> 00:13:06,500
En este ejercicio, hemos visto cómo podemos,

161
00:13:06,500 --> 00:13:10,930
primero, crear un plato usando platos crear,

162
00:13:10,930 --> 00:13:14,520
luego vimos el uso de sub-documentos: allí,

163
00:13:14,520 --> 00:13:18,060
definimos un esquema dentro del

164
00:13:18,060 --> 00:13:21,720
archivo dishes.js y luego usamos el esquema de comentarios que definimos y

165
00:13:21,720 --> 00:13:29,130
luego definimos el campo en el esquema de platos como un del tipo CommentSchema.

166
00:13:29,130 --> 00:13:32,810
Y luego, en el archivo index.js,

167
00:13:32,810 --> 00:13:35,445
pudimos crear un plato,

168
00:13:35,445 --> 00:13:38,210
actualizar el plato y también insertar

169
00:13:38,210 --> 00:13:44,140
un documento de comentario en el plato y luego guardar los cambios aquí.

170
00:13:44,140 --> 00:13:46,480
Con esto, completamos este ejercicio.

171
00:13:46,480 --> 00:13:54,170
Este es un buen momento para que hagas un Git Kermit con el mensaje, «Mangosta tercera parte».