﻿1
00:00:01,336 --> 00:00:03,960
‫Instructor: En este video, continuemos traduciendo

2
00:00:03,960 --> 00:00:06,900
‫el modelo de datos que establecimos al principio

3
00:00:06,900 --> 00:00:09,600
‫de la sección en un código real.

4
00:00:09,600 --> 00:00:13,023
‫Entonces, esta vez implementaremos el modelo de revisiones.

5
00:00:14,780 --> 00:00:17,870
‫Entonces, el primer paso es crear un nuevo archivo en

6
00:00:17,870 --> 00:00:22,273
‫la carpeta de modelos y llamarlo ReviewModel. js.

7
00:00:25,800 --> 00:00:29,480
‫Y para mí, esto parece otro gran desafío para que

8
00:00:29,480 --> 00:00:31,640
‫practique algunas de las habilidades

9
00:00:31,640 --> 00:00:34,090
‫que ya aprendió hasta este momento.

10
00:00:34,090 --> 00:00:36,890
‫De acuerdo, en este desafío, quiero que cree el

11
00:00:36,890 --> 00:00:38,200
‫modelo de revisión.

12
00:00:38,200 --> 00:00:41,370
‫Y lo que necesitamos allí es realmente muy simple.

13
00:00:41,370 --> 00:00:43,220
‫Permítanme poner eso aquí en un comentario.

14
00:00:44,360 --> 00:00:46,090
‫Así que básicamente queremos una revisión,

15
00:00:46,090 --> 00:00:48,030
‫por lo que el texto para la revisión.

16
00:00:48,030 --> 00:00:49,350
‫Queremos

17
00:00:50,230 --> 00:00:51,840
‫una calificación así.

18
00:00:51,840 --> 00:00:54,950
‫Luego también queremos un createdAt so con la

19
00:00:54,950 --> 00:00:56,760
‫marca de tiempo actual

20
00:00:56,760 --> 00:01:00,880
‫y luego también queremos una referencia al recorrido al que

21
00:01:00,880 --> 00:01:02,590
‫pertenece esta revisión

22
00:01:02,590 --> 00:01:05,793
‫y también al usuario que escribió esta revisión.

23
00:01:07,870 --> 00:01:12,090
‫Bien, básicamente dos referencias de los padres aquí, cierto.

24
00:01:12,090 --> 00:01:14,270
‫Y así, con las cosas que

25
00:01:14,270 --> 00:01:15,790
‫aprendiste en las últimas

26
00:01:15,790 --> 00:01:18,410
‫conferencias, deberías poder completar este desafío por

27
00:01:18,410 --> 00:01:19,660
‫tu cuenta.

28
00:01:19,660 --> 00:01:23,033
‫Entonces, pausa el video ahora y buena suerte con eso.

29
00:01:26,690 --> 00:01:29,430
‫Bien, espero que no te hayas saltado

30
00:01:29,430 --> 00:01:33,070
‫esto y, en cambio, lo hayas implementado tú mismo y,

31
00:01:33,070 --> 00:01:35,813
‫de todos modos, así es como lo creé.

32
00:01:36,780 --> 00:01:39,490
‫Entonces, por supuesto, debemos comenzar por requerir mangosta y luego

33
00:01:46,880 --> 00:01:47,713
‫el esquema

34
00:01:50,728 --> 00:01:54,480
‫de revisión es igual a nueva mangosta. Esquema.

35
00:02:00,780 --> 00:02:03,053
‫Entonces comencemos a agregar nuestros campos.

36
00:02:03,960 --> 00:02:06,790
‫Entonces, primero la revisión es, por supuesto, una cadena.

37
00:02:06,790 --> 00:02:09,830
‫Ahora bien, y por supuesto, estoy haciendo esto

38
00:02:09,830 --> 00:02:12,660
‫demasiado rápido, así que también necesito especificar

39
00:02:12,660 --> 00:02:15,013
‫el tipo y luego configurémoslo

40
00:02:16,930 --> 00:02:17,763
‫en

41
00:02:19,180 --> 00:02:22,623
‫un requisito, verdadero, la revisión no puede estar vacía.

42
00:02:23,820 --> 00:02:26,333
‫Entonces queremos una calificación,

43
00:02:30,130 --> 00:02:32,663
‫y esta es del tipo número.

44
00:02:33,940 --> 00:02:37,333
‫Y la calificación ideal es entre uno y cinco.

45
00:02:38,580 --> 00:02:43,580
‫Y entonces el mínimo de uno y el máximo es cinco.

46
00:02:43,620 --> 00:02:44,700
‫Entonces, como

47
00:02:44,700 --> 00:02:47,000
‫ya sabe, estos son algunos validadores simples.

48
00:02:47,000 --> 00:02:50,260
‫Eso funciona solo para números, ¿verdad?

49
00:02:50,260 --> 00:02:51,543
‫Esto no es correcto aquí.

50
00:02:52,570 --> 00:02:53,640
‫Bueno.

51
00:02:53,640 --> 00:02:55,733
‫A continuación, el createdAt.

52
00:02:59,630 --> 00:03:01,783
‫En esto es de tipo,

53
00:03:05,120 --> 00:03:07,360
‫fecha y, por defecto, queremos

54
00:03:10,380 --> 00:03:12,300
‫Fecha. ahora.

55
00:03:12,300 --> 00:03:13,133
‫Bueno.

56
00:03:14,480 --> 00:03:16,700
‫Así que esta fue la parte fácil.

57
00:03:16,700 --> 00:03:18,980
‫Y también creemos un modelo

58
00:03:18,980 --> 00:03:21,523
‫y exportémoslo antes de agregar estas referencias.

59
00:03:22,930 --> 00:03:25,023
‫Así que const, Review es

60
00:03:26,090 --> 00:03:29,710
‫igual demasiado mangosta. modelo con el

61
00:03:32,630 --> 00:03:34,320
‫nombre Review.

62
00:03:34,320 --> 00:03:35,920
‫Y luego, por supuesto, reviseSchema.

63
00:03:41,210 --> 00:03:44,430
‫Para finalizar el módulo del curso. la exportación

64
00:03:46,040 --> 00:03:49,340
‫es igual a la revisión.

65
00:03:49,340 --> 00:03:52,890
‫Muy bien, y ahora viene la parte de referencia.

66
00:03:52,890 --> 00:03:56,880
‫Por lo tanto, una revisión, por supuesto, debe pertenecer a un recorrido.

67
00:03:56,880 --> 00:03:58,900
‫Y también necesita un autor.

68
00:03:58,900 --> 00:03:59,733
‫Bueno.

69
00:03:59,733 --> 00:04:01,710
‫Así que eso es nuevamente lo que

70
00:04:01,710 --> 00:04:03,910
‫especificamos en nuestra conferencia de modelado de datos.

71
00:04:03,910 --> 00:04:06,000
‫Básicamente, íbamos a implementar

72
00:04:06,000 --> 00:04:09,030
‫referencias de padres aquí en este caso.

73
00:04:09,030 --> 00:04:12,060
‫Porque tanto el recorrido como el usuario son, en cierto

74
00:04:12,060 --> 00:04:15,020
‫sentido, los padres de este conjunto de datos.

75
00:04:15,020 --> 00:04:17,080
‫Y decidimos hacerlo de esta

76
00:04:17,080 --> 00:04:18,790
‫manera porque potencialmente

77
00:04:18,790 --> 00:04:22,140
‫vamos a borrar enormemente cualquier elemento principal, ¿verdad?

78
00:04:22,140 --> 00:04:24,680
‫Por eso no debemos diseñar nuestra

79
00:04:24,680 --> 00:04:27,600
‫aplicación pensando que solo habrá unas pocas revisiones.

80
00:04:27,600 --> 00:04:30,660
‫Solo para luego volver a él después de un

81
00:04:30,660 --> 00:04:33,700
‫tiempo y descubrir que nuestras suposiciones estaban equivocadas.

82
00:04:33,700 --> 00:04:36,660
‫Y ahora necesitamos reconstruir todo nuestro modelo de datos.

83
00:04:36,660 --> 00:04:38,340
‫Entonces eso sería terrible.

84
00:04:38,340 --> 00:04:41,110
‫Entonces, en muchas situaciones, como ya sabe

85
00:04:41,110 --> 00:04:44,520
‫lo que realmente no sabemos, cuánto crecerá nuestro borrado.

86
00:04:44,520 --> 00:04:47,970
‫Entonces es mejor optar por la referencia de los padres.

87
00:04:47,970 --> 00:04:50,580
‫Así que, de nuevo, eso es exactamente lo que

88
00:04:50,580 --> 00:04:53,400
‫estamos haciendo aquí cuando hacemos referencia al tour y al usuario.

89
00:04:53,400 --> 00:04:56,383
‫Así que, en realidad, sigamos adelante e implementemos eso.

90
00:04:57,390 --> 00:04:58,853
‫Y empezando por el tour.

91
00:05:01,070 --> 00:05:02,650
‫Bien.

92
00:05:02,650 --> 00:05:06,153
‫Entonces aquí necesitamos algo de espacio, y está bien.

93
00:05:07,630 --> 00:05:12,140
‫Entonces el tipo es como lo hicimos antes, mangosta, y eso

94
00:05:12,140 --> 00:05:13,423
‫no es correcto.

95
00:05:14,290 --> 00:05:18,593
‫Tan mangosta. Esquema. ObjectId, con una

96
00:05:21,600 --> 00:05:25,890
‫O mayúscula y una I mayúscula, pero no D.

97
00:05:25,890 --> 00:05:26,930
‫Y solo

98
00:05:26,930 --> 00:05:29,760
‫te lo digo porque una vez escribí una identificación

99
00:05:29,760 --> 00:05:32,370
‫como esta y luego pasé media hora tratando de

100
00:05:32,370 --> 00:05:34,560
‫averiguar por qué mi aplicación no funcionaba.

101
00:05:34,560 --> 00:05:37,293
‫Bien, entonces esta D debe estar en minúsculas.

102
00:05:38,880 --> 00:05:39,713
‫De todas formas.

103
00:05:39,713 --> 00:05:44,540
‫La referencia en este caso es, por supuesto, el recorrido.

104
00:05:44,540 --> 00:05:46,813
‫Y también queremos que esto sea obligatorio.

105
00:05:49,680 --> 00:05:54,680
‫Tan cierto y luego Review debe pertenecer a

106
00:05:57,300 --> 00:05:58,780
‫un recorrido.

107
00:05:58,780 --> 00:05:59,670
‫Bueno.

108
00:05:59,670 --> 00:06:02,820
‫Y así, cada documento de revisión ahora sabe

109
00:06:02,820 --> 00:06:05,870
‫exactamente a qué recorrido pertenece también.

110
00:06:05,870 --> 00:06:08,570
‫Si bien el recorrido, por supuesto, no

111
00:06:08,570 --> 00:06:11,640
‫sabe inicialmente qué Reseñas y cuántas Reseñas hay.

112
00:06:11,640 --> 00:06:13,070
‫Pero ese es un problema

113
00:06:13,070 --> 00:06:14,820
‫que de hecho resolveremos un poco más tarde.

114
00:06:16,290 --> 00:06:17,220
‫Bueno.

115
00:06:17,220 --> 00:06:20,453
‫A continuación, cuando hay una revisión, no solo

116
00:06:20,453 --> 00:06:23,270
‫queremos saber a qué tour pertenece, sino

117
00:06:23,270 --> 00:06:25,373
‫también quién escribió esta revisión.

118
00:06:26,570 --> 00:06:27,933
‫Entonces

119
00:06:29,580 --> 00:06:32,410
‫usuario, y nuevamente, el mismo

120
00:06:32,410 --> 00:06:37,243
‫tipo de mangosta. Esquema. ObjectId, y

121
00:06:38,610 --> 00:06:39,443
‫esta

122
00:06:39,443 --> 00:06:44,443
‫vez la referencia, como puedes imaginar, será user.

123
00:06:44,460 --> 00:06:47,880
‫De acuerdo, y nuevamente lo hacemos

124
00:06:47,880 --> 00:06:51,960
‫obligatorio porque, bueno, una revisión realmente no puede

125
00:06:51,960 --> 00:06:54,830
‫funcionar sin un autor básicamente.

126
00:06:54,830 --> 00:06:56,800
‫Por tanto, la

127
00:06:58,250 --> 00:07:01,163
‫revisión debe pertenecer a un usuario.

128
00:07:05,080 --> 00:07:06,563
‫Está bien, eso es todo.

129
00:07:07,470 --> 00:07:08,303
‫Bien.

130
00:07:09,670 --> 00:07:12,750
‫Ahora, para terminar, agreguemos también estas opciones al

131
00:07:12,750 --> 00:07:16,280
‫esquema donde lo hacemos para que las propiedades virtuales también se

132
00:07:16,280 --> 00:07:19,470
‫muestren en Json y en las salidas de los objetos.

133
00:07:19,470 --> 00:07:20,303
‫Bueno.

134
00:07:20,303 --> 00:07:22,450
‫Así que hicimos eso antes en las giras.

135
00:07:22,450 --> 00:07:25,290
‫No estoy seguro de si lo hicimos en el modelo de usuario.

136
00:07:25,290 --> 00:07:27,080
‫Pero de todos modos, aquí lo vamos a

137
00:07:27,080 --> 00:07:28,480
‫necesitar un poco más tarde.

138
00:07:28,480 --> 00:07:30,160
‫Entonces necesitamos especificar eso.

139
00:07:30,160 --> 00:07:32,710
‫Recuerde, básicamente lo que quiero decir

140
00:07:36,320 --> 00:07:37,860
‫es esta parte.

141
00:07:37,860 --> 00:07:40,570
‫Así que voy a seguir adelante y copiarlo.

142
00:07:40,570 --> 00:07:42,023
‫Solo para ahorrarnos algo de tiempo.

143
00:07:45,250 --> 00:07:48,580
‫Y nuevamente, todo lo que esto hace es realmente asegurarse de que

144
00:07:48,580 --> 00:07:50,730
‫cuando tengamos una propiedad virtual, básicamente

145
00:07:50,730 --> 00:07:53,350
‫un campo que no esté almacenado en la base de

146
00:07:53,350 --> 00:07:55,850
‫datos, sino que se calcule usando algún otro valor.

147
00:07:55,850 --> 00:07:59,670
‫Así que queremos que esto también se muestre siempre que haya una salida.

148
00:07:59,670 --> 00:08:02,113
‫Bien, y eso es lo que hacemos aquí.

149
00:08:03,130 --> 00:08:03,963
‫Bueno.

150
00:08:03,963 --> 00:08:07,490
‫Y creo que eso es todo por ahora.

151
00:08:07,490 --> 00:08:08,550
‫Muy simple.

152
00:08:08,550 --> 00:08:11,530
‫La única parte un poco complicada es crear

153
00:08:11,530 --> 00:08:13,010
‫estas referencias aquí.

154
00:08:13,010 --> 00:08:14,680
‫Pero en realidad lo hicimos antes

155
00:08:14,680 --> 00:08:17,673
‫y, por lo tanto, realmente funciona exactamente de la misma manera.

156
00:08:19,430 --> 00:08:21,800
‫Entonces, en el siguiente video, usaremos

157
00:08:21,800 --> 00:08:24,470
‫el esquema para crear algunas revisiones nuevas.

158
00:08:24,470 --> 00:08:25,653
‫Así que nos vemos entonces.

