﻿1
00:00:01,170 --> 00:00:02,830
‫Instructor: Así que incorporamos

2
00:00:02,830 --> 00:00:05,060
‫a los usuarios en recorridos en el

3
00:00:05,060 --> 00:00:06,870
‫último video y también hablamos

4
00:00:06,870 --> 00:00:10,010
‫sobre los inconvenientes de ese enfoque en nuestra situación específica.

5
00:00:10,010 --> 00:00:13,010
‫Entonces, en este video, conectemos recorridos

6
00:00:13,010 --> 00:00:17,443
‫y usuarios no mediante la inserción, sino mediante una referencia.

7
00:00:19,050 --> 00:00:19,883
‫Y

8
00:00:19,883 --> 00:00:24,883
‫para empezar, eliminemos el código que escribimos en la última lección.

9
00:00:24,920 --> 00:00:26,350
‫Bien, este de

10
00:00:26,350 --> 00:00:29,533
‫aquí, responsable de realizar la incrustación básicamente.

11
00:00:30,650 --> 00:00:33,800
‫Y ahora vayamos aquí a nuestro campo de guías.

12
00:00:33,800 --> 00:00:34,670
‫¿Okey?

13
00:00:34,670 --> 00:00:36,570
‫Entonces, esta vez en este

14
00:00:36,570 --> 00:00:40,860
‫video, la idea es que los tours y los usuarios siempre permanezcan como

15
00:00:40,860 --> 00:00:43,760
‫entidades completamente separadas en nuestra base de datos.

16
00:00:43,760 --> 00:00:44,593
‫¿Okey?

17
00:00:44,593 --> 00:00:47,130
‫Entonces, todo lo que guardamos en un determinado documento

18
00:00:47,130 --> 00:00:50,290
‫de viaje son las ID de los usuarios que son los guías

19
00:00:50,290 --> 00:00:52,000
‫turísticos para ese recorrido específico.

20
00:00:52,000 --> 00:00:53,900
‫Luego, cuando consultamos el

21
00:00:53,900 --> 00:00:57,170
‫recorrido, queremos tener acceso automáticamente a los guías turísticos.

22
00:00:57,170 --> 00:00:59,450
‫Pero de nuevo, sin que se

23
00:00:59,450 --> 00:01:02,060
‫guarden realmente en el documento de viaje.

24
00:01:02,060 --> 00:01:04,320
‫Y eso es exactamente lo que hace referencia.

25
00:01:04,320 --> 00:01:08,150
‫Así como hablamos al comienzo de esta sección.

26
00:01:08,150 --> 00:01:08,983
‫¿Está bien?

27
00:01:08,983 --> 00:01:10,020
‫Y ahora

28
00:01:10,020 --> 00:01:13,419
‫permítanme mostrarles cómo podemos implementar referencias usando Mongoose.

29
00:01:13,419 --> 00:01:14,450
‫¿Okey?

30
00:01:14,450 --> 00:01:18,545
‫Entonces, aquí en las guías ahora querremos especificar una matriz.

31
00:01:18,545 --> 00:01:19,610
‫¿Okey?

32
00:01:19,610 --> 00:01:23,000
‫Así como hicimos antes con las ubicaciones.

33
00:01:23,000 --> 00:01:24,510
‫Y eso, de

34
00:01:24,510 --> 00:01:26,930
‫nuevo, significa que estos serán algunos subdocumentos.

35
00:01:26,930 --> 00:01:28,770
‫Documentos tan incrustados.

36
00:01:28,770 --> 00:01:29,603
‫¿Está bien?

37
00:01:30,480 --> 00:01:32,360
‫Y ahora el tipo

38
00:01:32,360 --> 00:01:35,470
‫será un tipo nuevo que nunca antes habíamos visto.

39
00:01:35,470 --> 00:01:40,470
‫Y eso es mangosta. Esquema. objectId.

40
00:01:44,715 --> 00:01:45,599
‫¿Okey?

41
00:01:45,599 --> 00:01:47,874
‫Y lo que esto significa es que esperamos

42
00:01:47,874 --> 00:01:49,780
‫que un tipo de cada uno

43
00:01:49,780 --> 00:01:53,220
‫de los elementos en la matriz de guías sea un ID de MongoDB.

44
00:01:53,220 --> 00:01:54,053
‫¿Está bien?

45
00:01:54,053 --> 00:01:57,220
‫Y aquí, en realidad, debe ser una O mayúscula,

46
00:01:57,220 --> 00:01:59,520
‫está bien, de lo contrario

47
00:01:59,520 --> 00:02:03,880
‫no funcionará, y también todo esto debe estar dentro de un objeto,

48
00:02:03,880 --> 00:02:06,880
‫como cualquier otra definición de tipo de esquema.

49
00:02:06,880 --> 00:02:09,403
‫Está bien, porque eso es todo lo que realmente es.

50
00:02:11,140 --> 00:02:16,140
‫Bien, entonces el tipo es de este ID de MongoDB, básicamente,

51
00:02:16,670 --> 00:02:20,303
‫y luego también necesitamos especificar la referencia.

52
00:02:21,210 --> 00:02:24,020
‫Y aquí es donde ocurre la magia

53
00:02:24,020 --> 00:02:28,630
‫detrás de escena, porque aquí, ahora decimos que la referencia debe ser el usuario.

54
00:02:28,630 --> 00:02:32,140
‫Bien, y así es como establecemos referencias entre

55
00:02:32,140 --> 00:02:35,170
‫diferentes conjuntos de datos en Mongoose.

56
00:02:35,170 --> 00:02:37,540
‫Y para esto, ni

57
00:02:37,540 --> 00:02:42,060
‫siquiera necesitamos que el usuario sea importado a este documento.

58
00:02:42,060 --> 00:02:44,910
‫Así que en realidad teníamos eso aquí, pero ni siquiera lo necesitamos.

59
00:02:44,910 --> 00:02:46,970
‫Teníamos eso aquí para la

60
00:02:46,970 --> 00:02:48,620
‫conferencia anterior, pero podemos

61
00:02:48,620 --> 00:02:52,455
‫comentarlo, porque lo que acabamos de hacer aquí seguirá funcionando.

62
00:02:52,455 --> 00:02:53,950
‫¿Okey?

63
00:02:53,950 --> 00:02:57,420
‫Entonces, sigamos adelante y creemos una nueva gira, y de

64
00:02:57,420 --> 00:03:00,370
‫hecho lo haré tal como lo hicimos antes.

65
00:03:01,440 --> 00:03:03,973
‫Así que sigamos adelante y eliminemos este.

66
00:03:05,400 --> 00:03:06,833
‫¿Dónde está la identificación?

67
00:03:08,931 --> 00:03:10,560
‫Aquí vamos.

68
00:03:10,560 --> 00:03:11,933
‫Así que elimine el recorrido.

69
00:03:14,760 --> 00:03:17,113
‫Entonces ya podemos usar nuestra API para eso.

70
00:03:19,700 --> 00:03:23,600
‫Muy bien, y ahora creamos un nuevo recorrido.

71
00:03:23,600 --> 00:03:24,930
‫Y así, al igual

72
00:03:24,930 --> 00:03:28,950
‫que antes, todo lo que pasamos a las guías es una matriz de ID.

73
00:03:28,950 --> 00:03:29,783
‫¿Está bien?

74
00:03:29,783 --> 00:03:31,226
‫Pero esta vez

75
00:03:31,226 --> 00:03:35,010
‫especificamos que un ID de objeto es exactamente lo que esperamos.

76
00:03:35,010 --> 00:03:35,843
‫¿Derecha?

77
00:03:35,843 --> 00:03:39,420
‫Entonces, esto aquí es del tipo ID de objeto.

78
00:03:39,420 --> 00:03:42,957
‫Pero detrás de escena, también se hace referencia al usuario.

79
00:03:42,957 --> 00:03:44,200
‫¿Está bien?

80
00:03:44,200 --> 00:03:47,300
‫Entonces, cuando creemos este recorrido aquí, en

81
00:03:47,300 --> 00:03:50,090
‫realidad solo contendrá estos ID,

82
00:03:50,090 --> 00:03:53,640
‫y no el usuario correspondiente a los ID.

83
00:03:53,640 --> 00:03:55,090
‫Así que echemos un vistazo a eso.

84
00:03:56,500 --> 00:03:59,040
‫Y sí, aquí vamos.

85
00:03:59,040 --> 00:04:01,720
‫Entonces, estos son exactamente los datos que ingresamos.

86
00:04:01,720 --> 00:04:04,430
‫Solo las identificaciones de los guías turísticos.

87
00:04:04,430 --> 00:04:07,010
‫Está bien, y eso es exactamente lo que esperábamos.

88
00:04:07,010 --> 00:04:09,410
‫Porque por ahora, todo lo que realmente tenemos

89
00:04:09,410 --> 00:04:11,790
‫son las referencias dentro de Mongoose.

90
00:04:11,790 --> 00:04:14,430
‫Y luego nos encargaremos de que los

91
00:04:14,430 --> 00:04:17,730
‫datos aparezcan en nuestra salida en el siguiente video.

92
00:04:17,730 --> 00:04:20,330
‫Está bien, porque lo haremos de dos formas diferentes.

93
00:04:21,210 --> 00:04:24,323
‫También echemos un vistazo aquí a

94
00:04:25,930 --> 00:04:30,930
‫Compass realmente rápido, solo para ver dónde está eso, sí, aquí.

95
00:04:30,960 --> 00:04:33,680
‫Entonces ves la ID del objeto en

96
00:04:33,680 --> 00:04:36,480
‫realidad y luego, por supuesto, las ID que pasamos.

97
00:04:36,480 --> 00:04:39,960
‫Entonces, tal como esperábamos con los recorridos y los usuarios,

98
00:04:39,960 --> 00:04:42,620
‫siguen siendo dos entidades completamente diferentes.

99
00:04:42,620 --> 00:04:44,860
‫Y como dije antes, en el

100
00:04:44,860 --> 00:04:47,290
‫siguiente video, nos encargaremos de mostrar los

101
00:04:47,290 --> 00:04:49,030
‫datos del usuario en

102
00:04:49,030 --> 00:04:51,533
‫la salida, utilizando un proceso llamado poblado.

