﻿1
00:00:01,090 --> 00:00:03,130
‫Instructor: En la última lección,

2
00:00:03,130 --> 00:00:06,010
‫aprendimos sobre los esquemas y modelos de Mongoose,

3
00:00:06,010 --> 00:00:08,260
‫por lo que ahora implementemos un

4
00:00:08,260 --> 00:00:11,173
‫esquema y un modelo muy simple para nuestra aplicación.

5
00:00:12,920 --> 00:00:14,990
‫Y por ahora, hagámoslo aquí mismo

6
00:00:14,990 --> 00:00:17,330
‫en nuestro servidor. js archivo.

7
00:00:17,330 --> 00:00:19,020
‫Más tarde, por supuesto,

8
00:00:19,020 --> 00:00:21,370
‫lo trasladaremos a un archivo diferente.

9
00:00:21,370 --> 00:00:24,560
‫Entonces, Mongoose se trata de modelos, y un

10
00:00:24,560 --> 00:00:26,960
‫modelo es como un

11
00:00:26,960 --> 00:00:29,420
‫plano que usamos para crear documentos.

12
00:00:29,420 --> 00:00:32,290
‫Así que es un poco como clases

13
00:00:32,290 --> 00:00:35,080
‫en JavaScript, que también usamos como

14
00:00:35,080 --> 00:00:38,590
‫planos para crear objetos a partir de ellos, ¿verdad?

15
00:00:38,590 --> 00:00:41,500
‫Entonces, nuevamente, creamos un modelo en

16
00:00:41,500 --> 00:00:44,000
‫Mongoose para crear documentos usándolo,

17
00:00:44,000 --> 00:00:47,670
‫y también para consultar, actualizar y eliminar estos documentos.

18
00:00:47,670 --> 00:00:50,840
‫Básicamente, para realizar cada una de las operaciones

19
00:00:50,840 --> 00:00:53,420
‫CRUD, crear, leer, actualizar y

20
00:00:53,420 --> 00:00:56,520
‫eliminar, necesitamos un modelo Mongoose, y para crear

21
00:00:56,520 --> 00:00:59,520
‫un modelo, en realidad necesitamos un esquema.

22
00:00:59,520 --> 00:01:01,700
‫Entonces, en realidad creamos modelos a

23
00:01:01,700 --> 00:01:03,820
‫partir del esquema de Mongoose

24
00:01:03,820 --> 00:01:06,490
‫tal como aprendimos en el último video, y

25
00:01:06,490 --> 00:01:09,910
‫usamos el esquema para describir nuestros datos, establecer valores predeterminados,

26
00:01:09,910 --> 00:01:13,660
‫validar los datos y todo tipo de cosas por el estilo.

27
00:01:13,660 --> 00:01:15,620
‫Así que, tal como verá

28
00:01:15,620 --> 00:01:17,930
‫ahora, porque ahora vamos a empezar

29
00:01:17,930 --> 00:01:20,990
‫a crear un esquema muy simple para nuestros recorridos.

30
00:01:20,990 --> 00:01:24,980
‫Entonces, digamos que tourSchema es una

31
00:01:28,300 --> 00:01:32,363
‫nueva mangosta. Esquema.

32
00:01:33,852 --> 00:01:36,752
‫Agregue que aquí en realidad pasamos nuestro esquema como un objeto.

33
00:01:37,590 --> 00:01:40,990
‫De acuerdo, también podemos pasar algunas opciones al esquema,

34
00:01:40,990 --> 00:01:44,090
‫pero lo dejo para un video futuro en

35
00:01:44,090 --> 00:01:46,640
‫el que realmente necesitemos esa función.

36
00:01:46,640 --> 00:01:49,020
‫Entonces, ¿recuerdas los documentos de viaje que

37
00:01:49,020 --> 00:01:51,090
‫solíamos crear en la última

38
00:01:51,090 --> 00:01:53,190
‫sección cuando comenzamos a explorar Mongoose DB?

39
00:01:53,190 --> 00:01:54,760
‫Así que siempre

40
00:01:54,760 --> 00:01:57,100
‫les dimos un nombre, una calificación

41
00:01:57,100 --> 00:01:59,226
‫y un precio, correcto, y ahora

42
00:01:59,226 --> 00:02:02,010
‫repitamos eso aquí diciendo el nombre y luego

43
00:02:02,010 --> 00:02:04,717
‫describiendo qué tipo de datos queremos después

44
00:02:04,717 --> 00:02:07,500
‫del nombre, y queremos que sea una cadena.

45
00:02:07,500 --> 00:02:09,770
‫Entonces, Mongoose realmente usa los tipos

46
00:02:09,770 --> 00:02:13,280
‫de datos nativos de JavaScript, por lo que aquí podemos

47
00:02:13,280 --> 00:02:16,980
‫decir cadena, o después de la calificación podemos decir que queremos

48
00:02:19,394 --> 00:02:22,163
‫un número y lo mismo que el precio.

49
00:02:23,340 --> 00:02:25,890
‫También debería ser un número, ¿verdad?

50
00:02:25,890 --> 00:02:30,320
‫Entonces esta es la forma más básica de describir nuestros datos.

51
00:02:30,320 --> 00:02:33,130
‫Entonces tenemos un nombre, una calificación y un

52
00:02:33,130 --> 00:02:34,913
‫precio, y especificamos el tipo

53
00:02:34,913 --> 00:02:38,150
‫de datos que esperamos para cada uno de estos campos.

54
00:02:38,150 --> 00:02:40,340
‫De nuevo, esta es la

55
00:02:40,340 --> 00:02:43,100
‫forma más básica de describir un esquema, pero

56
00:02:43,100 --> 00:02:45,650
‫podemos ir un paso más allá definiendo algo

57
00:02:45,650 --> 00:02:48,360
‫llamado opciones de tipo de esquema para cada

58
00:02:48,360 --> 00:02:50,600
‫campo, o solo para algún campo específico.

59
00:02:50,600 --> 00:02:52,640
‫Así que comencemos aquí con

60
00:02:52,640 --> 00:02:54,270
‫el nombre, y

61
00:02:54,270 --> 00:02:58,490
‫en lugar de simplemente especificarlo como una cadena, pasemos otro objeto.

62
00:02:58,490 --> 00:03:01,340
‫Y ahora, decimos que queremos que el tipo sea

63
00:03:01,340 --> 00:03:02,850
‫una cadena, pero ahora

64
00:03:02,850 --> 00:03:05,640
‫podemos definir un par de opciones más, ¿de acuerdo?

65
00:03:05,640 --> 00:03:10,640
‫Por ejemplo, podemos decir que este campo es obligatorio, por lo

66
00:03:12,070 --> 00:03:13,060
‫que simplemente

67
00:03:13,060 --> 00:03:17,110
‫establecemos la propiedad requerida aquí en verdadero, ¿de acuerdo?

68
00:03:17,110 --> 00:03:20,970
‫Entonces, nuevamente, este objeto aquí son las opciones de tipo de esquema, y

69
00:03:20,970 --> 00:03:23,320
‫pueden ser diferentes para diferentes tipos, por ejemplo,

70
00:03:23,320 --> 00:03:25,640
‫el tipo de número tiene algunas

71
00:03:25,640 --> 00:03:28,250
‫opciones de esquema diferentes a las de la cadena

72
00:03:28,250 --> 00:03:30,770
‫aquí, pero muchas de ellas también son similares.

73
00:03:30,770 --> 00:03:32,630
‫Entonces, por ejemplo, el requerido,

74
00:03:32,630 --> 00:03:35,403
‫también podemos usarlo en el número, y hagámoslo aquí.

75
00:03:39,750 --> 00:03:42,776
‫Entonces, el tipo, todavía queremos que

76
00:03:42,776 --> 00:03:47,460
‫sea un número, y también queremos que sea obligatorio, ¿de acuerdo?

77
00:03:47,460 --> 00:03:49,460
‫Ahora, aquí, en el campo obligatorio,

78
00:03:49,460 --> 00:03:52,310
‫podemos especificar el error que queremos que se muestre

79
00:03:52,310 --> 00:03:54,020
‫cuando nos falta este campo.

80
00:03:54,020 --> 00:03:55,760
‫Entonces, para hacer eso,

81
00:03:55,760 --> 00:03:59,300
‫solo tenemos que pasar una matriz, y la primera es verdadera.

82
00:03:59,300 --> 00:04:01,720
‫Entonces, el primer elemento es verdadero y el

83
00:04:01,720 --> 00:04:03,820
‫segundo es la cadena de error.

84
00:04:03,820 --> 00:04:08,670
‫Digamos que una gira debe tener un nombre, y luego aquí

85
00:04:08,670 --> 00:04:10,270
‫hagamos lo mismo.

86
00:04:15,459 --> 00:04:17,490
‫El recorrido debe tener un precio, ¿de acuerdo?

87
00:04:17,490 --> 00:04:19,698
‫Entonces también podemos establecer valores

88
00:04:19,698 --> 00:04:22,720
‫predeterminados y hagámoslo aquí para la calificación.

89
00:04:22,720 --> 00:04:24,640
‫Entonces, nuevamente, voy a especificar

90
00:04:24,640 --> 00:04:27,610
‫algunas opciones de tipo de esquema aquí, que no es

91
00:04:27,610 --> 00:04:29,700
‫obligatorio, por lo que es suficiente simplemente

92
00:04:29,700 --> 00:04:32,210
‫definir el tipo aquí como lo hicimos nosotros, pero

93
00:04:32,210 --> 00:04:34,150
‫si desea algunas características más, entonces necesitamos

94
00:04:34,150 --> 00:04:37,033
‫al menos especificar el esquema. Tipo de objeto de opciones.

95
00:04:38,080 --> 00:04:42,580
‫De acuerdo, y luego debemos especificar el tipo nuevamente, que es número, y

96
00:04:42,580 --> 00:04:47,480
‫como predeterminado, quiero que sea 4. 5.

97
00:04:48,350 --> 00:04:50,990
‫Entonces, si ahora creáramos un nuevo documento

98
00:04:50,990 --> 00:04:54,270
‫de viaje usando este esquema y sin especificar la

99
00:04:54,270 --> 00:04:58,928
‫calificación, automáticamente se establecería en 4. 5, ¿de acuerdo?

100
00:04:58,928 --> 00:05:02,100
‫Y para terminar, probemos con otro aquí, lo que quiere

101
00:05:02,100 --> 00:05:04,853
‫decir que el nombre debe ser único.

102
00:05:05,910 --> 00:05:09,080
‫Entonces, único y configúrelo como verdadero, y así,

103
00:05:09,080 --> 00:05:11,020
‫ahora podemos tener dos

104
00:05:11,020 --> 00:05:14,390
‫documentos de viaje con el mismo nombre, ¿de acuerdo?

105
00:05:14,390 --> 00:05:16,550
‫Entonces, este es nuestro esquema muy

106
00:05:16,550 --> 00:05:18,370
‫básico, ahora sigamos adelante y

107
00:05:18,370 --> 00:05:21,230
‫creemos un modelo a partir de él, ¿de acuerdo?

108
00:05:21,230 --> 00:05:22,380
‫Y eso

109
00:05:24,890 --> 00:05:28,412
‫es muy simple, simplemente creamos una variable llamada

110
00:05:28,412 --> 00:05:32,390
‫Tour, y luego mangosta. modelo, luego el nombre del

111
00:05:32,390 --> 00:05:36,380
‫modelo, que es Tour con una T mayúscula aquí,

112
00:05:36,380 --> 00:05:37,780
‫de acuerdo.

113
00:05:37,780 --> 00:05:39,930
‫Y eso es solo una especie

114
00:05:39,930 --> 00:05:42,500
‫de convención en programación para usar siempre mayúsculas en

115
00:05:42,500 --> 00:05:44,720
‫los nombres y variables de los modelos.

116
00:05:44,720 --> 00:05:47,040
‫Entonces aquí es lo mismo, así que

117
00:05:47,040 --> 00:05:49,980
‫también creé esta variable de recorrido aquí con una T mayúscula

118
00:05:49,980 --> 00:05:52,630
‫para que sepamos que estamos tratando con un modelo aquí.

119
00:05:53,750 --> 00:05:55,940
‫Muy bien, entonces el

120
00:05:55,940 --> 00:06:00,940
‫nombre del modelo y luego el esquema, y eso es todo.

121
00:06:01,310 --> 00:06:04,210
‫Así que así, creamos un recorrido

122
00:06:04,210 --> 00:06:08,210
‫a partir del esquema que creamos aquí al principio.

123
00:06:08,210 --> 00:06:10,150
‫De acuerdo, y en

124
00:06:10,150 --> 00:06:12,570
‫el siguiente video usaremos este

125
00:06:12,570 --> 00:06:17,220
‫modelo aquí para crear nuestro primer documento de gira, ¿de acuerdo?

126
00:06:17,220 --> 00:06:21,300
‫Así que solo un resumen aquí, usamos nueva mangosta. Esquema aquí para

127
00:06:21,300 --> 00:06:24,525
‫especificar un esquema para nuestros datos.

128
00:06:24,525 --> 00:06:27,870
‫Entonces, básicamente describiéndolo y también haciendo algo de validación.

129
00:06:27,870 --> 00:06:29,800
‫Por ejemplo, esto se requiere

130
00:06:29,800 --> 00:06:32,580
‫aquí, esto es en realidad algo llamado validador

131
00:06:32,580 --> 00:06:35,120
‫porque se usa para validar nuestros datos.

132
00:06:35,120 --> 00:06:37,330
‫En este caso, simplemente para validar si

133
00:06:37,330 --> 00:06:39,390
‫el nombre está realmente ahí.

134
00:06:39,390 --> 00:06:41,757
‫Y hay muchos validadores en Mongoose, y en

135
00:06:41,757 --> 00:06:44,200
‫realidad también podemos crear los nuestros, por lo

136
00:06:44,200 --> 00:06:46,400
‫que, por supuesto, hablaremos de eso

137
00:06:46,400 --> 00:06:50,186
‫un poco más tarde, nuevamente, una vez que realmente necesitemos estas características.

138
00:06:50,186 --> 00:06:52,600
‫De todos modos, ahora avancemos rápidamente para

139
00:06:52,600 --> 00:06:54,540
‫finalmente comenzar a usar el modelo

140
00:06:54,540 --> 00:06:56,113
‫que acabamos de crear.

