﻿1
00:00:01,170 --> 00:00:02,830
‫Instrutor: Então, incorporamos

2
00:00:02,830 --> 00:00:05,060
‫usuários aos passeios no último vídeo

3
00:00:05,060 --> 00:00:06,870
‫e também falamos sobre

4
00:00:06,870 --> 00:00:10,010
‫as desvantagens dessa abordagem em nossa situação específica.

5
00:00:10,010 --> 00:00:13,010
‫E então, neste vídeo, vamos conectar tours e

6
00:00:13,010 --> 00:00:17,443
‫usuários não por meio de incorporação, mas por meio de uma referência.

7
00:00:19,050 --> 00:00:19,883
‫E então,

8
00:00:19,883 --> 00:00:24,883
‫para começar, vamos realmente nos livrar do código que escrevemos na última aula.

9
00:00:24,920 --> 00:00:26,350
‫Ok, então este

10
00:00:26,350 --> 00:00:29,533
‫aqui, responsável por realizar a incorporação basicamente.

11
00:00:30,650 --> 00:00:33,800
‫E agora vamos aqui para o nosso campo de guias.

12
00:00:33,800 --> 00:00:34,670
‫OK?

13
00:00:34,670 --> 00:00:36,570
‫Portanto, desta vez neste

14
00:00:36,570 --> 00:00:40,860
‫vídeo, a ideia é que passeios e usuários sempre permanecerão entidades

15
00:00:40,860 --> 00:00:43,760
‫completamente separadas em nosso banco de dados.

16
00:00:43,760 --> 00:00:44,593
‫OK?

17
00:00:44,593 --> 00:00:47,130
‫Portanto, tudo o que salvamos em um determinado

18
00:00:47,130 --> 00:00:50,290
‫documento de passeio são os IDs dos usuários que são

19
00:00:50,290 --> 00:00:52,000
‫os guias desse passeio específico.

20
00:00:52,000 --> 00:00:53,900
‫Então, quando consultamos o

21
00:00:53,900 --> 00:00:57,170
‫passeio, queremos ter acesso automático aos guias turísticos.

22
00:00:57,170 --> 00:00:59,450
‫Mas, novamente, sem que eles sejam

23
00:00:59,450 --> 00:01:02,060
‫realmente salvos no próprio documento de passeio.

24
00:01:02,060 --> 00:01:04,320
‫E isso é exatamente referência.

25
00:01:04,320 --> 00:01:08,150
‫Assim como falamos no início desta seção.

26
00:01:08,150 --> 00:01:08,983
‫Tudo bem?

27
00:01:08,983 --> 00:01:10,020
‫E então,

28
00:01:10,020 --> 00:01:13,419
‫deixe-me mostrar como podemos implementar a referência usando o Mongoose.

29
00:01:13,419 --> 00:01:14,450
‫OK?

30
00:01:14,450 --> 00:01:18,545
‫Portanto, aqui nos guias, agora queremos especificar um array.

31
00:01:18,545 --> 00:01:19,610
‫OK?

32
00:01:19,610 --> 00:01:23,000
‫Assim como fizemos antes com as locações.

33
00:01:23,000 --> 00:01:24,510
‫E isso significa

34
00:01:24,510 --> 00:01:26,930
‫novamente que estes serão alguns subdocumentos.

35
00:01:26,930 --> 00:01:28,770
‫Então, documentos embutidos.

36
00:01:28,770 --> 00:01:29,603
‫Tudo bem?

37
00:01:30,480 --> 00:01:32,360
‫E agora o tipo

38
00:01:32,360 --> 00:01:35,470
‫será um novo tipo que nunca vimos antes.

39
00:01:35,470 --> 00:01:40,470
‫E isso é mangusto. Esquema. objectId.

40
00:01:44,715 --> 00:01:45,599
‫OK?

41
00:01:45,599 --> 00:01:47,874
‫E o que isso significa é que esperamos

42
00:01:47,874 --> 00:01:49,780
‫que um tipo de cada

43
00:01:49,780 --> 00:01:53,220
‫um dos elementos na matriz de guias seja um ID do MongoDB.

44
00:01:53,220 --> 00:01:54,053
‫Tudo bem?

45
00:01:54,053 --> 00:01:57,220
‫E aqui, na verdade, ele precisa ser um O

46
00:01:57,220 --> 00:01:59,520
‫maiúsculo, ok, caso contrário, não vai

47
00:01:59,520 --> 00:02:03,880
‫funcionar, e também tudo isso aqui precisa estar dentro de um objeto,

48
00:02:03,880 --> 00:02:06,880
‫como qualquer outra definição de tipo de esquema.

49
00:02:06,880 --> 00:02:09,403
‫Ok, porque isso é tudo que realmente é.

50
00:02:11,140 --> 00:02:16,140
‫Ok, então o tipo é esse ID do MongoDB, basicamente,

51
00:02:16,670 --> 00:02:20,303
‫e agora também precisamos especificar a referência.

52
00:02:21,210 --> 00:02:24,020
‫E é aí que a mágica acontece

53
00:02:24,020 --> 00:02:28,630
‫nos bastidores, porque aqui, agora dizemos que a referência deve ser o usuário.

54
00:02:28,630 --> 00:02:32,140
‫Ok, então é assim que estabelecemos referências entre

55
00:02:32,140 --> 00:02:35,170
‫diferentes conjuntos de dados no Mongoose.

56
00:02:35,170 --> 00:02:37,540
‫E para isso não precisamos

57
00:02:37,540 --> 00:02:42,060
‫nem mesmo que o usuário seja importado para este documento.

58
00:02:42,060 --> 00:02:44,910
‫Na verdade, tínhamos isso aqui, mas nem mesmo precisamos.

59
00:02:44,910 --> 00:02:46,970
‫Tínhamos isso aqui na aula

60
00:02:46,970 --> 00:02:48,620
‫anterior, mas podemos comentar,

61
00:02:48,620 --> 00:02:52,455
‫porque o que acabamos de fazer aqui ainda vai funcionar.

62
00:02:52,455 --> 00:02:53,950
‫OK?

63
00:02:53,950 --> 00:02:57,420
‫Então, vamos agora criar uma nova turnê e, na verdade,

64
00:02:57,420 --> 00:03:00,370
‫vou fazer do jeito que fizemos antes.

65
00:03:01,440 --> 00:03:03,973
‫Então, vamos excluir este.

66
00:03:05,400 --> 00:03:06,833
‫Onde está o ID?

67
00:03:08,931 --> 00:03:10,560
‫Aqui vamos nós.

68
00:03:10,560 --> 00:03:11,933
‫Portanto, exclua o tour.

69
00:03:14,760 --> 00:03:17,113
‫Portanto, já podemos usar nossa API para isso.

70
00:03:19,700 --> 00:03:23,600
‫Tudo bem, agora vamos criar um novo tour.

71
00:03:23,600 --> 00:03:24,930
‫E assim, como

72
00:03:24,930 --> 00:03:28,950
‫antes, tudo o que passamos para os guias é uma matriz de IDs.

73
00:03:28,950 --> 00:03:29,783
‫Tudo bem?

74
00:03:29,783 --> 00:03:31,226
‫Mas desta vez

75
00:03:31,226 --> 00:03:35,010
‫especificamos que um ID de objeto é exatamente o que esperamos.

76
00:03:35,010 --> 00:03:35,843
‫Direito?

77
00:03:35,843 --> 00:03:39,420
‫Portanto, este aqui é do tipo ID de objeto.

78
00:03:39,420 --> 00:03:42,957
‫Mas, nos bastidores, também é referenciado ao usuário.

79
00:03:42,957 --> 00:03:44,200
‫Tudo bem?

80
00:03:44,200 --> 00:03:47,300
‫Portanto, quando criarmos este passeio aqui,

81
00:03:47,300 --> 00:03:50,090
‫ele conterá apenas esses IDs,

82
00:03:50,090 --> 00:03:53,640
‫e não o usuário correspondente aos IDs.

83
00:03:53,640 --> 00:03:55,090
‫Então, vamos dar uma olhada nisso.

84
00:03:56,500 --> 00:03:59,040
‫E então sim, vamos lá.

85
00:03:59,040 --> 00:04:01,720
‫Então, esses são exatamente os dados que colocamos.

86
00:04:01,720 --> 00:04:04,430
‫Apenas as identificações dos guias turísticos.

87
00:04:04,430 --> 00:04:07,010
‫Ok, e isso é exatamente o que esperávamos.

88
00:04:07,010 --> 00:04:09,410
‫Porque, por enquanto, tudo o que realmente temos

89
00:04:09,410 --> 00:04:11,790
‫são as referências dentro do Mongoose.

90
00:04:11,790 --> 00:04:14,430
‫E então cuidaremos de realmente obter os

91
00:04:14,430 --> 00:04:17,730
‫dados para aparecer em nossa saída no próximo vídeo.

92
00:04:17,730 --> 00:04:20,330
‫Ok, porque faremos isso de duas maneiras diferentes.

93
00:04:21,210 --> 00:04:24,323
‫Vamos também dar uma olhada aqui

94
00:04:25,930 --> 00:04:30,930
‫no Compass bem rápido, só para ver também onde está, sim, aqui.

95
00:04:30,960 --> 00:04:33,680
‫Então, você vê o ID do objeto

96
00:04:33,680 --> 00:04:36,480
‫na verdade e, é claro, os IDs que passamos.

97
00:04:36,480 --> 00:04:39,960
‫Assim como esperávamos com tours e usuários, ainda

98
00:04:39,960 --> 00:04:42,620
‫são duas entidades completamente diferentes.

99
00:04:42,620 --> 00:04:44,860
‫E como eu disse antes, no

100
00:04:44,860 --> 00:04:47,290
‫próximo vídeo, vamos cuidar de realmente exibir

101
00:04:47,290 --> 00:04:49,030
‫os dados do usuário

102
00:04:49,030 --> 00:04:51,533
‫na saída, usando um processo chamado preenchimento.

