﻿1
00:00:01,090 --> 00:00:03,130
‫Instrutor: Na última aula,

2
00:00:03,130 --> 00:00:06,010
‫aprendemos sobre os esquemas e modelos do

3
00:00:06,010 --> 00:00:08,260
‫Mongoose, e agora vamos implementar um

4
00:00:08,260 --> 00:00:11,173
‫esquema e modelo muito simples para nosso aplicativo.

5
00:00:12,920 --> 00:00:14,990
‫E por enquanto, vamos fazer isso aqui mesmo

6
00:00:14,990 --> 00:00:17,330
‫em nosso servidor. arquivo js.

7
00:00:17,330 --> 00:00:19,020
‫Mais tarde, é claro,

8
00:00:19,020 --> 00:00:21,370
‫vamos mover isso para um arquivo diferente.

9
00:00:21,370 --> 00:00:24,560
‫Portanto, Mongoose tem tudo a ver com modelos,

10
00:00:24,560 --> 00:00:26,960
‫e um modelo é como

11
00:00:26,960 --> 00:00:29,420
‫um projeto que usamos para criar documentos.

12
00:00:29,420 --> 00:00:32,290
‫Então é um pouco como classes em

13
00:00:32,290 --> 00:00:35,080
‫JavaScript, que também usamos como

14
00:00:35,080 --> 00:00:38,590
‫projetos para criar objetos a partir deles, certo?

15
00:00:38,590 --> 00:00:41,500
‫Então, novamente, criamos um modelo no

16
00:00:41,500 --> 00:00:44,000
‫Mongoose para criar documentos usando-o

17
00:00:44,000 --> 00:00:47,670
‫e também para consultar, atualizar e excluir esses documentos.

18
00:00:47,670 --> 00:00:50,840
‫Então, basicamente, para realizar cada uma das operações CRUD,

19
00:00:50,840 --> 00:00:53,420
‫criar, ler, atualizar e excluir, precisamos

20
00:00:53,420 --> 00:00:56,520
‫de um modelo Mongoose e, para criar um

21
00:00:56,520 --> 00:00:59,520
‫modelo, na verdade precisamos de um esquema.

22
00:00:59,520 --> 00:01:01,700
‫Então, nós realmente criamos modelos a

23
00:01:01,700 --> 00:01:03,820
‫partir do esquema Mongoose, assim

24
00:01:03,820 --> 00:01:06,490
‫como aprendemos no último vídeo, e usamos

25
00:01:06,490 --> 00:01:09,910
‫o esquema para descrever nossos dados, para definir valores padrão,

26
00:01:09,910 --> 00:01:13,660
‫para validar os dados e todos os tipos de coisas assim.

27
00:01:13,660 --> 00:01:15,620
‫Assim como você verá

28
00:01:15,620 --> 00:01:17,930
‫agora, porque agora vamos começar a

29
00:01:17,930 --> 00:01:20,990
‫criar um esquema muito simples para nossos passeios.

30
00:01:20,990 --> 00:01:24,980
‫Então, digamos que tourSchema é um

31
00:01:28,300 --> 00:01:32,363
‫novo mangusto. Esquema.

32
00:01:33,852 --> 00:01:36,752
‫Adicione que aqui nós realmente passamos nosso esquema como um objeto.

33
00:01:37,590 --> 00:01:40,990
‫Tudo bem, podemos então passar algumas opções para o

34
00:01:40,990 --> 00:01:44,090
‫esquema, mas vou deixar isso para um vídeo

35
00:01:44,090 --> 00:01:46,640
‫futuro, onde realmente precisamos desse recurso.

36
00:01:46,640 --> 00:01:49,020
‫Então, lembra dos documentos de tour que

37
00:01:49,020 --> 00:01:51,090
‫criamos na última seção quando

38
00:01:51,090 --> 00:01:53,190
‫começamos a explorar o Mongoose DB?

39
00:01:53,190 --> 00:01:54,760
‫Sempre demos a

40
00:01:54,760 --> 00:01:57,100
‫eles um nome, uma classificação e

41
00:01:57,100 --> 00:01:59,226
‫um preço, certo, e agora vamos

42
00:01:59,226 --> 00:02:02,010
‫replicar isso aqui, dizendo o nome e, em

43
00:02:02,010 --> 00:02:04,717
‫seguida, descrevendo que tipo de dados queremos após

44
00:02:04,717 --> 00:02:07,500
‫o nome, e queremos que seja uma string.

45
00:02:07,500 --> 00:02:09,770
‫Portanto, o Mongoose realmente

46
00:02:09,770 --> 00:02:13,280
‫usa os tipos de dados nativos do JavaScript, e

47
00:02:13,280 --> 00:02:16,980
‫aqui podemos dizer string ou, após a classificação, podemos dizer

48
00:02:19,394 --> 00:02:22,163
‫que queremos um número igual ao preço.

49
00:02:23,340 --> 00:02:25,890
‫Também deve ser um número, certo?

50
00:02:25,890 --> 00:02:30,320
‫Portanto, esta é a maneira mais básica de descrever nossos dados.

51
00:02:30,320 --> 00:02:33,130
‫Portanto, temos um nome, uma classificação e um

52
00:02:33,130 --> 00:02:34,913
‫preço, e especificamos o

53
00:02:34,913 --> 00:02:38,150
‫tipo de dados que esperamos para cada um desses campos.

54
00:02:38,150 --> 00:02:40,340
‫Portanto, novamente, esta é a

55
00:02:40,340 --> 00:02:43,100
‫maneira mais básica de descrever um esquema, mas

56
00:02:43,100 --> 00:02:45,650
‫podemos dar um passo adiante definindo algo

57
00:02:45,650 --> 00:02:48,360
‫chamado opções de tipo de esquema para cada

58
00:02:48,360 --> 00:02:50,600
‫campo ou apenas para algum campo específico.

59
00:02:50,600 --> 00:02:52,640
‫Portanto, vamos começar aqui com o

60
00:02:52,640 --> 00:02:54,270
‫nome e, em

61
00:02:54,270 --> 00:02:58,490
‫vez de apenas especificá-lo como uma string, vamos passar outro objeto.

62
00:02:58,490 --> 00:03:01,340
‫E agora, dizemos que queremos que o tipo

63
00:03:01,340 --> 00:03:02,850
‫seja string, mas

64
00:03:02,850 --> 00:03:05,640
‫agora podemos definir mais algumas opções, certo?

65
00:03:05,640 --> 00:03:10,640
‫Por exemplo, podemos dizer que este campo é obrigatório, então

66
00:03:12,070 --> 00:03:13,060
‫simplesmente

67
00:03:13,060 --> 00:03:17,110
‫definimos a propriedade required aqui como true, certo?

68
00:03:17,110 --> 00:03:20,970
‫Portanto, novamente, este objeto aqui são as opções de tipo de esquema

69
00:03:20,970 --> 00:03:23,320
‫e podem ser diferentes para diferentes tipos,

70
00:03:23,320 --> 00:03:25,640
‫por exemplo, o tipo de

71
00:03:25,640 --> 00:03:28,250
‫número tem algumas opções de esquema diferentes da

72
00:03:28,250 --> 00:03:30,770
‫string aqui, mas muitas delas também são semelhantes.

73
00:03:30,770 --> 00:03:32,630
‫Por exemplo, o obrigatório, podemos

74
00:03:32,630 --> 00:03:35,403
‫usá-lo no número também, então vamos fazer isso aqui.

75
00:03:39,750 --> 00:03:42,776
‫Então, o tipo, ainda queremos que

76
00:03:42,776 --> 00:03:47,460
‫seja um número e também queremos que seja obrigatório, certo?

77
00:03:47,460 --> 00:03:49,460
‫Agora, aqui no obrigatório, podemos

78
00:03:49,460 --> 00:03:52,310
‫realmente especificar o erro que desejamos exibir quando

79
00:03:52,310 --> 00:03:54,020
‫este campo estiver faltando.

80
00:03:54,020 --> 00:03:55,760
‫Então, para fazer isso,

81
00:03:55,760 --> 00:03:59,300
‫só temos que passar um array, e o primeiro é verdadeiro.

82
00:03:59,300 --> 00:04:01,720
‫Portanto, o primeiro elemento é verdadeiro e o

83
00:04:01,720 --> 00:04:03,820
‫segundo é a string de erro.

84
00:04:03,820 --> 00:04:08,670
‫Digamos que um passeio deve ter um nome, e aqui vamos

85
00:04:08,670 --> 00:04:10,270
‫fazer o mesmo.

86
00:04:15,459 --> 00:04:17,490
‫O passeio deve ter um preço, ok?

87
00:04:17,490 --> 00:04:19,698
‫Então, também podemos definir os valores

88
00:04:19,698 --> 00:04:22,720
‫padrão e vamos fazer isso aqui para a classificação.

89
00:04:22,720 --> 00:04:24,640
‫Então, novamente, vou especificar algumas

90
00:04:24,640 --> 00:04:27,610
‫opções de tipo de esquema aqui, o que não é

91
00:04:27,610 --> 00:04:29,700
‫obrigatório, então é suficiente simplesmente definir

92
00:04:29,700 --> 00:04:32,210
‫o tipo aqui como fizemos, mas se você

93
00:04:32,210 --> 00:04:34,150
‫quiser mais alguns recursos, precisamos pelo

94
00:04:34,150 --> 00:04:37,033
‫menos especificar o esquema tipo de objeto de opções.

95
00:04:38,080 --> 00:04:42,580
‫Ok, então precisamos especificar o tipo novamente, que é um número e,

96
00:04:42,580 --> 00:04:47,480
‫como padrão, quero que seja 4. 5

97
00:04:48,350 --> 00:04:50,990
‫Portanto, se criarmos um novo documento de

98
00:04:50,990 --> 00:04:54,270
‫passeio usando esse esquema e não especificando a classificação,

99
00:04:54,270 --> 00:04:58,928
‫ele será definido automaticamente como 4. 5, certo?

100
00:04:58,928 --> 00:05:02,100
‫E só para terminar, vamos tentar outro aqui, que quer

101
00:05:02,100 --> 00:05:04,853
‫dizer que o nome deve ser único.

102
00:05:05,910 --> 00:05:09,080
‫Então, único e definido como verdadeiro, e assim,

103
00:05:09,080 --> 00:05:11,020
‫agora podemos ter dois

104
00:05:11,020 --> 00:05:14,390
‫documentos de turnê com o mesmo nome, certo?

105
00:05:14,390 --> 00:05:16,550
‫Portanto, este é o nosso esquema

106
00:05:16,550 --> 00:05:18,370
‫básico, vamos agora em frente

107
00:05:18,370 --> 00:05:21,230
‫e realmente criar um modelo a partir dele, certo?

108
00:05:21,230 --> 00:05:22,380
‫E isso

109
00:05:24,890 --> 00:05:28,412
‫é muito simples, simplesmente criamos uma variável chamada

110
00:05:28,412 --> 00:05:32,390
‫Tour e, em seguida, mangusto. modelo, depois o nome do

111
00:05:32,390 --> 00:05:36,380
‫modelo, que é Tour com um T maiúsculo aqui,

112
00:05:36,380 --> 00:05:37,780
‫tudo bem.

113
00:05:37,780 --> 00:05:39,930
‫E isso é uma espécie

114
00:05:39,930 --> 00:05:42,500
‫de convenção na programação de sempre usar letras

115
00:05:42,500 --> 00:05:44,720
‫maiúsculas nos nomes e variáveis do modelo.

116
00:05:44,720 --> 00:05:47,040
‫Então aqui é o mesmo, então eu

117
00:05:47,040 --> 00:05:49,980
‫também criei esta variável de passeio aqui com T maiúsculo apenas

118
00:05:49,980 --> 00:05:52,630
‫para sabermos que estamos lidando com um modelo aqui.

119
00:05:53,750 --> 00:05:55,940
‫Tudo bem, então o

120
00:05:55,940 --> 00:06:00,940
‫nome do modelo e então o esquema, e é isso.

121
00:06:01,310 --> 00:06:04,210
‫Assim, criamos um tour fora

122
00:06:04,210 --> 00:06:08,210
‫do esquema que criamos aqui no início.

123
00:06:08,210 --> 00:06:10,150
‫Tudo bem, então no

124
00:06:10,150 --> 00:06:12,570
‫próximo vídeo vamos usar este

125
00:06:12,570 --> 00:06:17,220
‫modelo aqui para criar nosso primeiro documento de turnê, certo?

126
00:06:17,220 --> 00:06:21,300
‫Então, apenas uma recapitulação aqui, usamos um novo mangusto. Esquema aqui para

127
00:06:21,300 --> 00:06:24,525
‫especificar um esquema para nossos dados.

128
00:06:24,525 --> 00:06:27,870
‫Então, basicamente descrevendo e também fazendo algumas validações.

129
00:06:27,870 --> 00:06:29,800
‫Por exemplo, isso é obrigatório

130
00:06:29,800 --> 00:06:32,580
‫aqui, na verdade é algo chamado de validador

131
00:06:32,580 --> 00:06:35,120
‫porque é usado para validar nossos dados.

132
00:06:35,120 --> 00:06:37,330
‫Nesse caso, basta validar se o

133
00:06:37,330 --> 00:06:39,390
‫nome realmente está lá.

134
00:06:39,390 --> 00:06:41,757
‫E há muitos validadores no Mongoose, e

135
00:06:41,757 --> 00:06:44,200
‫também podemos criar o nosso próprio, então

136
00:06:44,200 --> 00:06:46,400
‫é claro que falaremos sobre

137
00:06:46,400 --> 00:06:50,186
‫isso um pouco mais tarde, novamente, quando realmente precisarmos desses recursos.

138
00:06:50,186 --> 00:06:52,600
‫De qualquer forma, vamos avançar rapidamente para

139
00:06:52,600 --> 00:06:54,540
‫finalmente começar a usar o modelo

140
00:06:54,540 --> 00:06:56,113
‫que acabamos de criar.

