1
00:00:00,190 --> 00:00:06,510
Bueno, vuelve en este video para mostrarte cómo podemos configurar una asociación de una a varias asociaciones

2
00:00:06,540 --> 00:00:13,710
entre dos modelos de mangosta mediante la incrustación de datos y vamos a trabajar con el usuario y la publicación.

3
00:00:13,710 --> 00:00:19,980
Así que esto será como una aplicación de Facebook o blog donde tenemos un usuario y un usuario puede tener muchas

4
00:00:19,980 --> 00:00:26,520
publicaciones, pero una publicación pertenece a un usuario y no vamos a crear una aplicación real aquí con rutas y plantillas.

5
00:00:26,790 --> 00:00:30,090
Nos enfocaremos en los datos y el modelado de datos.

6
00:00:30,120 --> 00:00:36,110
Así que voy a comenzar haciendo un nuevo archivo dentro del directorio de asociaciones que hice.

7
00:00:36,300 --> 00:00:37,520
Puedes hacer esto donde quieras.

8
00:00:37,530 --> 00:00:48,600
Va a ser un archivo único y lo llamaré embed dot J. S. la mangosta, y eso llevará un momento.

9
00:00:48,960 --> 00:01:00,750
y abriré eso y dentro de aquí necesitaré una mangosta que aún no he instalado, así que lo haré a continuación y el

10
00:01:00,810 --> 00:01:02,150
primer ministro instalará

11
00:01:02,160 --> 00:01:03,020
Aquí vamos.

12
00:01:03,360 --> 00:01:04,790
Hagamos un poco de espacio.

13
00:01:05,010 --> 00:01:11,250
Y una vez que lo necesitamos, lo siguiente que queremos hacer es conectarnos a una base de datos

14
00:01:12,750 --> 00:01:18,870
para que mongoose se conecte y esto depende totalmente de nosotros el nombre de la base de

15
00:01:19,380 --> 00:01:22,350
datos, pero tiene que ser Mangu DB. .

16
00:01:22,350 --> 00:01:26,890
Esta demo de blog así y guarde.

17
00:01:27,500 --> 00:01:33,100
OK, entonces ahora necesitamos definir dos modelos que tenemos usuarios y tenemos una publicación.

18
00:01:33,330 --> 00:01:38,610
El usuario solo tendrá un correo electrónico, un nombre y una publicación.

19
00:01:38,640 --> 00:01:42,170
Tendrá un título y luego un contenido.

20
00:01:42,540 --> 00:01:44,310
La publicación real en sí misma.

21
00:01:44,310 --> 00:01:47,330
Entonces comenzaremos con el usuario necesita definir el esquema.

22
00:01:47,520 --> 00:01:58,670
Hasta el momento, el esquema del usuario es igual al nuevo esquema de mangosta y luego vamos a tener un correo electrónico que es una cadena y

23
00:01:58,860 --> 00:02:01,790
un nombre que es una cadena así.

24
00:02:02,100 --> 00:02:04,850
Y luego crearemos el modelo hasta ahora.

25
00:02:05,010 --> 00:02:11,760
El usuario es igual al usuario del modelo de mangosta.

26
00:02:11,760 --> 00:02:16,340
La versión Cingular y el esquema del usuario es de lo que estamos construyendo.

27
00:02:16,530 --> 00:02:17,700
Y ahorraremos eso.

28
00:02:17,980 --> 00:02:18,640
DE ACUERDO.

29
00:02:18,930 --> 00:02:20,580
Ahora pasemos a la publicación.

30
00:02:20,640 --> 00:02:31,380
Así que vamos a crear otro esquema esta vez, el esquema var post es igual al nuevo esquema de mangosta y luego cada publicación

31
00:02:31,410 --> 00:02:37,710
tiene un título que es una cadena y contenido que también hará una cadena.

32
00:02:38,340 --> 00:02:48,030
convertirlo en un modelo var post modelo igual a mongoose stop model post comma post schema.

33
00:02:48,450 --> 00:02:51,500
Y luego también tenemos que

34
00:02:51,790 --> 00:02:52,590
Derecha.

35
00:02:52,650 --> 00:02:56,010
Entonces tenemos dos esquemas configurando dos modelos.

36
00:02:56,010 --> 00:02:57,670
Vamos a hacer un poco de espacio aquí.

37
00:02:57,810 --> 00:03:00,830
Entonces tenemos nuestras publicaciones y tenemos nuestros usuarios.

38
00:03:00,990 --> 00:03:02,610
Y solo intentemos ejecutar esto.

39
00:03:02,610 --> 00:03:09,100
Asegúrese de que no tengamos ningún error de sintaxis para iniciar el embebido del nodo Dutcher Sí.

40
00:03:09,600 --> 00:03:11,090
Se ve bien.

41
00:03:11,100 --> 00:03:15,470
Ahora vamos a crear un solo usuario solo para asegurarnos de que nuestro modelo funcione.

42
00:03:15,470 --> 00:03:21,630
Así que en la parte inferior, hecho aquí voy a hacer un nuevo usuario así

43
00:03:22,170 --> 00:03:35,220
que simplemente lo llamaremos nuestro nuevo usuario igual a nuevo usuario y luego vamos a pasar un correo electrónico y el correo electrónico será Charlie en torno a Edu y el nombre

44
00:03:35,220 --> 00:03:37,240
será Charlie Brown solo así.

45
00:03:37,380 --> 00:03:40,600
Y luego, lo que ahorra un nuevo usuario para guardar.

46
00:03:40,740 --> 00:03:46,230
Y luego agregaremos nuestra devolución de llamada con el error y luego volveremos los datos,

47
00:03:46,230 --> 00:03:49,540
que esperamos sea nuestro usuario y no solo usted.

48
00:03:49,560 --> 00:03:55,370
Si el error cancela el error de registro.

49
00:03:56,670 --> 00:04:01,010
De lo contrario, cancelaremos ese usuario de registro.

50
00:04:01,110 --> 00:04:03,340
Hasta ahora no hay asociaciones.

51
00:04:03,390 --> 00:04:06,350
Solo estoy probando para ver si nuestro modelo de usuario funciona.

52
00:04:06,360 --> 00:04:15,120
Entonces, ejecutemos este nodo incrustado en Dutchesse y recuperemos a nuestro usuario con la ID que se generó automáticamente

53
00:04:15,210 --> 00:04:17,190
nombre y correo electrónico.

54
00:04:17,190 --> 00:04:22,110
Genial, intentemos lo mismo con la publicación, así que coméntelo para no obtener

55
00:04:22,110 --> 00:04:31,980
otro usuario y vamos a hacer nuestra nueva publicación igual a nueva y una publicación tendrá un título y el título de la publicación será una

56
00:04:32,370 --> 00:04:37,060
reflexión sobre las manzanas y el texto de esa publicación o el contenido.

57
00:04:37,050 --> 00:04:40,940
Creo que lo llamamos sí, el contenido será.

58
00:04:41,280 --> 00:04:43,620
Son deliciosos.

59
00:04:44,250 --> 00:04:44,640
Todo bien.

60
00:04:44,640 --> 00:04:46,110
Gran publicación de blog allí.

61
00:04:46,320 --> 00:04:53,520
Salvaremos para asegurarnos de que todo esté bien y luego vamos a hacer una nueva publicación que nos

62
00:04:53,520 --> 00:04:55,940
salve la devolución de llamada nuevamente.

63
00:04:56,100 --> 00:05:01,520
Con suerte, te estás sintiendo cómodo con este patrón porque lo estás viendo sin parar en el lugar donde pasan esta

64
00:05:01,530 --> 00:05:03,240
devolución de llamada a la mangosta.

65
00:05:03,360 --> 00:05:09,300
Cada vez que hacemos algo con Monga es encontrar crear actualizaciones de ahorro eventualmente eliminando eventualmente tenemos que pasar

66
00:05:09,600 --> 00:05:14,670
en una devolución de llamada con el error como el primer parámetro y luego los datos

67
00:05:14,670 --> 00:05:15,360
como el segundo.

68
00:05:15,360 --> 00:05:15,590
Todo bien.

69
00:05:15,600 --> 00:05:28,610
Por lo tanto, si el error anula el registro que, de lo contrario, llegaría a esa publicación del blog, asegúrese de que ambos funcionen.

70
00:05:28,670 --> 00:05:32,260
Probémoslo y nos topamos con un pequeño problema.

71
00:05:32,390 --> 00:05:36,920
Nos dice que la publicación no está definida cuando intentamos crear una nueva publicación.

72
00:05:37,040 --> 00:05:41,990
Y la razón más lógica para que eso suceda sería si nombramos a nuestro modelo algo más que publicar.

73
00:05:42,350 --> 00:05:43,480
Y que sabes

74
00:05:43,520 --> 00:05:48,100
Lo llamamos modelo de publicación y nos referimos a que lo denominé incorrectamente.

75
00:05:48,410 --> 00:05:50,160
Así que vamos con la publicación.

76
00:05:50,270 --> 00:05:53,800
Podríamos haberlo guardado como modelo de publicación y luego haberlo cambiado aquí.

77
00:05:54,440 --> 00:05:58,760
Pero definitivamente es convencional que sea solo el nombre de lo que está

78
00:05:58,760 --> 00:06:03,920
haciendo, no necesita tener modelo, no necesita caracteres adicionales, solo el nombre del modelo en

79
00:06:03,920 --> 00:06:06,900
sí o de la entidad con un capital. PAG. De acuerdo para que coincida ahora.

80
00:06:06,920 --> 00:06:08,400
Derecha tenemos publicación y publicación aquí.

81
00:06:08,460 --> 00:06:11,500
Probemos esto de nuevo y esta vez agrega un nuevo contenido de publicación.

82
00:06:11,750 --> 00:06:17,740
Son deliciosas reflexiones de título sobre manzanas.

83
00:06:17,750 --> 00:06:20,700
Ahora que nos hemos asegurado de que nuestros

84
00:06:21,050 --> 00:06:25,340
dos modelos funcionen correctamente, podemos hacer una publicación y hacer un usuario.

85
00:06:25,340 --> 00:06:26,150
Pero actualmente no tienen

86
00:06:26,330 --> 00:06:31,550
nada que ver entre sí y queremos que tengan una relación. Recuerden que queremos que un usuario tenga o tenga muchas publicaciones y una publicación pertenecerá a un usuario.

87
00:06:31,550 --> 00:06:37,440
Entonces esa es una relación de uno a muchos.

88
00:06:37,670 --> 00:06:39,830
Y la forma en que voy a mostrar que logre eso es mediante la incorporación de datos en lugar de un esquema de usuario.

89
00:06:40,020 --> 00:06:45,770
Entonces se verá así.

90
00:06:46,250 --> 00:06:47,520
Entonces lo explicaré en solo un momento.

91
00:06:47,550 --> 00:06:49,940
Vamos a tener un atributo de publicación dentro del usuario y dentro del atributo del Post.

92
00:06:50,090 --> 00:06:55,520
Vamos a tener un montón de publicaciones y para que

93
00:06:55,520 --> 00:07:01,640
funcione necesitamos agregar el esquema de publicación dentro de una matriz.

94
00:07:01,640 --> 00:07:02,570
Entonces, en lugar de hacer que las

95
00:07:02,570 --> 00:07:08,210
publicaciones sean una cadena, un número o un booleano, le estamos diciendo a la mangosta que queremos que sea una lista de una serie de publicaciones y tenemos que escribir un esquema de publicación que es un poco confuso honestamente.

96
00:07:08,210 --> 00:07:14,640
Ojalá fuera solo publicar el nombre del modelo, pero así es como es.

97
00:07:14,780 --> 00:07:19,510
Tiene que ser el nombre del esquema y tenemos otro problema que es que si ejecutamos

98
00:07:19,520 --> 00:07:24,860
esto ahora no sabremos qué es post-quimio y eso es porque lo estamos definiendo en segundo lugar.

99
00:07:24,860 --> 00:07:29,890
Entonces, si incorporamos los datos, primero debemos definirlos.

100
00:07:29,990 --> 00:07:33,500
Así que definimos el esquema de publicación y el modelo de publicación y

101
00:07:33,590 --> 00:07:39,770
luego definimos el esquema de usuario y dentro del esquema de usuario agregamos un atributo llamado publicaciones que es una matriz de publicaciones.

102
00:07:39,770 --> 00:07:45,560
Entonces, si hacemos eso, nuestros datos se verán de esta manera o tendremos un nombre para

103
00:07:45,560 --> 00:07:53,840
un usuario, hagamos un correo electrónico y me limitaré a hacer un nombre jibberish y luego también tendremos publicaciones y publicaremos una matriz.

104
00:07:54,200 --> 00:08:00,960
título y contenido, y un usuario puede tener muchas publicaciones así.

105
00:08:01,220 --> 00:08:10,430
Y dentro de esa matriz, tenemos varias publicaciones, por lo que cada publicación tiene un

106
00:08:10,490 --> 00:08:13,380
Por lo tanto, por cada publicación que recibamos

107
00:08:13,730 --> 00:08:19,520
será una nueva publicación en lugar del atributo de publicaciones en un usuario en particular.

108
00:08:19,520 --> 00:08:20,870
Así que vamos a hacerlo.

109
00:08:20,870 --> 00:08:22,030
Creemos un usuario y luego le mostraremos cómo podemos agregar una publicación a ese usuario para que podamos usar nuestro.

110
00:08:22,160 --> 00:08:28,130
Charlie Brown aquí.

111
00:08:28,370 --> 00:08:29,990
El nuevo usuario es igual a Charlie Brown.

112
00:08:30,020 --> 00:08:31,960
Aunque cambiaré algunos de los correos electrónicos y nombres porque ya tenemos a Charlie Brown en la base de datos.

113
00:08:31,970 --> 00:08:36,920
Vamos con mi mis en Hogwarts edu.

114
00:08:37,490 --> 00:08:42,590
Y luego cambiaremos esto para ser mi tía Granger.

115
00:08:43,100 --> 00:08:46,490
Todo bien.

116
00:08:46,640 --> 00:08:47,190
Entonces tenemos un nuevo usuario y luego agregar una publicación a ese usuario.

117
00:08:47,330 --> 00:08:51,400
Todo lo que tienen que hacer es escribir nuevas publicaciones de usuarios que presionen porque es una matriz.

118
00:08:51,650 --> 00:08:58,990
Y presiono en una nueva publicación y una publicación tiene un título y el

119
00:08:59,090 --> 00:09:08,980
título de mi siguiente publicación será cómo preparar poción de poli jugo y luego el contenido será una broma.

120
00:09:08,970 --> 00:09:19,330
La clase de pociones para aprender todo bien.

121
00:09:19,490 --> 00:09:23,540
Lo que sea que realmente no importa.

122
00:09:23,540 --> 00:09:24,640
Entonces tenemos un

123
00:09:24,650 --> 00:09:31,810
título y algo de contenido y luego vamos a insertar esta publicación en un nuevo usuario que definimos aquí.

124
00:09:31,820 --> 00:09:32,450
Y lo último que tenemos que hacer es guardar un nuevo usuario.

125
00:09:32,810 --> 00:09:35,790
Entonces, un nuevo usuario que ahorra así.

126
00:09:35,840 --> 00:09:39,070
Y en realidad ya tenemos esto

127
00:09:39,070 --> 00:09:46,280
escrito, así que lo reutilizaré y lo eliminaré, y esto lo intentaré y lo guardaré.

128
00:09:46,280 --> 00:09:47,030
Si hay un error, nos avisará.

129
00:09:47,150 --> 00:09:48,920
De lo contrario, nos mostrará al

130
00:09:48,980 --> 00:09:54,440
usuario y luego comentar todas estas cosas aquí sobre las publicaciones y solo guardar eso y veamos qué pasa.

131
00:09:54,440 --> 00:09:56,880
Así que tenemos nuestro esquema de correos que usted

132
00:09:57,110 --> 00:10:02,720
definió, entonces tenemos el esquema del usuario y la nueva parte está aquí donde tenemos una serie de publicaciones dentro del usuario.

133
00:10:02,720 --> 00:10:06,340
Y luego estamos creando un nuevo usuario y presionando en esa publicación correctamente.

134
00:10:06,740 --> 00:10:10,080
Vamos a darle una oportunidad.

135
00:10:10,550 --> 00:10:12,610
DE ACUERDO.

136
00:10:14,230 --> 00:10:14,690
nueva publicación.

137
00:10:14,780 --> 00:10:20,850
Y le devolvemos a este usuario que estamos imprimiendo aquí correos electrónicos recordando el nombre de Hogwarts, es Hermione Granger y luego, en lugar de publicaciones, tenemos una

138
00:10:21,020 --> 00:10:23,700
Así que eso está funcionando bien.

139
00:10:23,820 --> 00:10:25,600
Ahora probemos algo más donde voy

140
00:10:25,610 --> 00:10:30,650
a comentar todo esto y en lugar de crear un nuevo usuario, recuperemos el usuario existente.

141
00:10:30,650 --> 00:10:33,450
Así que voy a recuperar su minería.

142
00:10:33,530 --> 00:10:35,350
Entonces haré eso con el usuario find.

143
00:10:35,480 --> 00:10:38,570
Y voy a usar encontrar uno.

144
00:10:38,740 --> 00:10:40,660
De lo contrario, find me dará una matriz y solo quiero una cosa.

145
00:10:40,820 --> 00:10:44,760
Así que vamos a hacer que no encuentre uno encontrará

146
00:10:44,780 --> 00:10:52,190
dónde se llama Hermione Granger y luego haremos nuestro error de devolución de llamada estándar y llamaremos a este usuario.

147
00:10:52,190 --> 00:10:58,180
Con suerte, te estás sintiendo cómodo con eso en este momento.

148
00:10:58,220 --> 00:11:00,670
Aquí mismo, la devolución de llamada

149
00:11:00,860 --> 00:11:05,990
que escribimos prácticamente cada vez que hacemos algo con Mongoose y luego lo haremos.

150
00:11:05,990 --> 00:11:06,750
Si alguna vez

151
00:11:06,950 --> 00:11:07,970
aparece un error de

152
00:11:10,660 --> 00:11:15,770
diálogo y, de lo contrario, tendremos constantemente errores en el usuario y tendré un paréntesis adicional que necesito eliminar de cada oportunidad.

153
00:11:20,030 --> 00:11:26,360
Así que esto es solo para encontrarla, mi nueva espalda no es nada nuevo.

154
00:11:26,360 --> 00:11:29,570
Estamos buscando un nuevo usuario y funciona.

155
00:11:29,570 --> 00:11:34,430
Hacemos que el usuario regrese.

156
00:11:34,430 --> 00:11:36,200
Su nombre es su mente, le envía un correo electrónico a su dinero en Hogwarts.

157
00:11:36,290 --> 00:11:39,030
Ahora, supongamos que quiero agregar otra publicación porque se supone que es de uno a muchos.

158
00:11:39,320 --> 00:11:44,690
Entonces, un usuario puede tener múltiples publicaciones.

159
00:11:44,720 --> 00:11:46,940
Hagámoslo ahora.

160
00:11:47,030 --> 00:11:48,680
y el título es tres cosas.

161
00:11:48,710 --> 00:11:56,390
Entonces, dentro del otro, una vez que encontramos al usuario Vamos a ejecutar un código para agregarlo en una nueva publicación y luego parece

162
00:11:56,390 --> 00:12:03,410
que este usuario publica la inserción al igual que antes y esta vez empujará otra publicación, así que empujaremos en el título

163
00:12:03,410 --> 00:12:08,280
Realmente odio y el contenido será aún más.

164
00:12:08,600 --> 00:12:16,490
Y Voldemort.

165
00:12:16,940 --> 00:12:18,150
Muy bien, la publicación creativa allí me lo recuerda y vamos a seguir y guardar esto.

166
00:12:18,350 --> 00:12:23,020
Así que todavía tenemos que hacer un ahorro de usuario y luego agregaremos nuestra devolución de llamada después.

167
00:12:23,060 --> 00:12:31,360
Otro de estos errores.

168
00:12:31,460 --> 00:12:33,470
Y simplemente llamaremos a este usuario nuevamente.

169
00:12:33,710 --> 00:12:36,440
Y en lugar de aquí, lo hará si el error de registro de la consola de error cancela el usuario de registro.

170
00:12:36,440 --> 00:12:47,660
Está bien, así que esto es lo que algunas personas llamarían devolución de llamada.

171
00:12:47,660 --> 00:12:50,240
Demonios tenemos muchas devoluciones de llamadas aquí.

172
00:12:50,240 --> 00:12:52,570
Tenemos el primero que encuentra su mente

173
00:12:52,670 --> 00:12:58,190
en el hallazgo de ese usuario que estamos recibiendo y luego estamos presionando en una nueva publicación.

174
00:12:58,190 --> 00:12:59,780
Pero eso no agrega realmente a la base de datos.

175
00:13:00,090 --> 00:13:02,050
Entonces tenemos que guardarlo.

176
00:13:02,120 --> 00:13:03,600
Y entonces hacemos el usuario save y este usuario aquí mismo.

177
00:13:03,800 --> 00:13:07,330
Estos dos se refieren al usuario que regresa cuando encontramos su

178
00:13:07,400 --> 00:13:13,640
mente la primera vez y luego estamos guardando y luego este usuario se refiere a lo que regresa del guardado.

179
00:13:13,640 --> 00:13:19,010
Entonces, este usuario aquí ahora tiene la nueva publicación agregada y la guarda en la base de datos.

180
00:13:19,040 --> 00:13:24,170
Son los datos que nos llegan desde Mongo y luego los estamos imprimiendo.

181
00:13:24,290 --> 00:13:29,390
Probémoslo ahora.

182
00:13:29,390 --> 00:13:30,340
Así que déjame deshacerme de este primer registro de contraplot.

183
00:13:30,500 --> 00:13:33,200
Solo déjalo así.

184
00:13:33,230 --> 00:13:34,890
nuestras cuentas sobre los registros.

185
00:13:34,970 --> 00:13:40,380
Vamos a dejar claro que no tenemos ningún otro código en ejecución que vaya a interferir con

186
00:13:40,380 --> 00:13:41,400
Vamos a ejecutarlo.

187
00:13:41,780 --> 00:13:43,970
Todo bien.

188
00:13:44,090 --> 00:13:44,750
Entonces, lo que

189
00:13:44,930 --> 00:13:52,190
vemos es que ahora estamos imprimiendo un único usuario, Hermione, que tiene dos publicaciones como primera y segunda, y ambas están almacenadas dentro del atributo de publicación en el usuario único.

190
00:13:52,880 --> 00:13:59,180
Entonces es uno para muchos.

191
00:13:59,180 --> 00:14:00,850
DE ACUERDO.

192
00:14:01,380 --> 00:14:01,660
Entonces eso es todo lo que quiero mostrar.

193
00:14:01,670 --> 00:14:02,940
Vamos a reflexionar sobre esto brevemente.

194
00:14:03,020 --> 00:14:04,890
Empezamos por sentarnos en Mongoose y tenemos dos modelos y eran independientes para empezar.

195
00:14:04,940 --> 00:14:10,190
Y luego los asociamos agregando esta matriz de esquema de correos al esquema del usuario.

196
00:14:10,370 --> 00:14:15,380
Entonces, ahora un usuario tiene una serie de publicaciones y comienza vacío.

197
00:14:15,590 --> 00:14:19,190
Pero luego lo agregamos empujando el punto de inserción y

198
00:14:19,430 --> 00:14:27,110
luego lo guardamos en el siguiente video para mostrarte otra forma de asociar datos utilizando lo que se llama referencias a objetos.

199
00:14:27,110 --> 00:14:31,290
&nbsp;
