‫Instructor: Así que incorporamos
‫a los usuarios en recorridos en el
‫último video y también hablamos
‫sobre los inconvenientes de ese enfoque en nuestra situación específica.
‫Entonces, en este video, conectemos recorridos
‫y usuarios no mediante la inserción, sino mediante una referencia.
‫Y
‫para empezar, eliminemos el código que escribimos en la última lección.
‫Bien, este de
‫aquí, responsable de realizar la incrustación básicamente.
‫Y ahora vayamos aquí a nuestro campo de guías.
‫¿Okey?
‫Entonces, esta vez en este
‫video, la idea es que los tours y los usuarios siempre permanezcan como
‫entidades completamente separadas en nuestra base de datos.
‫¿Okey?
‫Entonces, todo lo que guardamos en un determinado documento
‫de viaje son las ID de los usuarios que son los guías
‫turísticos para ese recorrido específico.
‫Luego, cuando consultamos el
‫recorrido, queremos tener acceso automáticamente a los guías turísticos.
‫Pero de nuevo, sin que se
‫guarden realmente en el documento de viaje.
‫Y eso es exactamente lo que hace referencia.
‫Así como hablamos al comienzo de esta sección.
‫¿Está bien?
‫Y ahora
‫permítanme mostrarles cómo podemos implementar referencias usando Mongoose.
‫¿Okey?
‫Entonces, aquí en las guías ahora querremos especificar una matriz.
‫¿Okey?
‫Así como hicimos antes con las ubicaciones.
‫Y eso, de
‫nuevo, significa que estos serán algunos subdocumentos.
‫Documentos tan incrustados.
‫¿Está bien?
‫Y ahora el tipo
‫será un tipo nuevo que nunca antes habíamos visto.
‫Y eso es mangosta. Esquema. objectId.
‫¿Okey?
‫Y lo que esto significa es que esperamos
‫que un tipo de cada uno
‫de los elementos en la matriz de guías sea un ID de MongoDB.
‫¿Está bien?
‫Y aquí, en realidad, debe ser una O mayúscula,
‫está bien, de lo contrario
‫no funcionará, y también todo esto debe estar dentro de un objeto,
‫como cualquier otra definición de tipo de esquema.
‫Está bien, porque eso es todo lo que realmente es.
‫Bien, entonces el tipo es de este ID de MongoDB, básicamente,
‫y luego también necesitamos especificar la referencia.
‫Y aquí es donde ocurre la magia
‫detrás de escena, porque aquí, ahora decimos que la referencia debe ser el usuario.
‫Bien, y así es como establecemos referencias entre
‫diferentes conjuntos de datos en Mongoose.
‫Y para esto, ni
‫siquiera necesitamos que el usuario sea importado a este documento.
‫Así que en realidad teníamos eso aquí, pero ni siquiera lo necesitamos.
‫Teníamos eso aquí para la
‫conferencia anterior, pero podemos
‫comentarlo, porque lo que acabamos de hacer aquí seguirá funcionando.
‫¿Okey?
‫Entonces, sigamos adelante y creemos una nueva gira, y de
‫hecho lo haré tal como lo hicimos antes.
‫Así que sigamos adelante y eliminemos este.
‫¿Dónde está la identificación?
‫Aquí vamos.
‫Así que elimine el recorrido.
‫Entonces ya podemos usar nuestra API para eso.
‫Muy bien, y ahora creamos un nuevo recorrido.
‫Y así, al igual
‫que antes, todo lo que pasamos a las guías es una matriz de ID.
‫¿Está bien?
‫Pero esta vez
‫especificamos que un ID de objeto es exactamente lo que esperamos.
‫¿Derecha?
‫Entonces, esto aquí es del tipo ID de objeto.
‫Pero detrás de escena, también se hace referencia al usuario.
‫¿Está bien?
‫Entonces, cuando creemos este recorrido aquí, en
‫realidad solo contendrá estos ID,
‫y no el usuario correspondiente a los ID.
‫Así que echemos un vistazo a eso.
‫Y sí, aquí vamos.
‫Entonces, estos son exactamente los datos que ingresamos.
‫Solo las identificaciones de los guías turísticos.
‫Está bien, y eso es exactamente lo que esperábamos.
‫Porque por ahora, todo lo que realmente tenemos
‫son las referencias dentro de Mongoose.
‫Y luego nos encargaremos de que los
‫datos aparezcan en nuestra salida en el siguiente video.
‫Está bien, porque lo haremos de dos formas diferentes.
‫También echemos un vistazo aquí a
‫Compass realmente rápido, solo para ver dónde está eso, sí, aquí.
‫Entonces ves la ID del objeto en
‫realidad y luego, por supuesto, las ID que pasamos.
‫Entonces, tal como esperábamos con los recorridos y los usuarios,
‫siguen siendo dos entidades completamente diferentes.
‫Y como dije antes, en el
‫siguiente video, nos encargaremos de mostrar los
‫datos del usuario en
‫la salida, utilizando un proceso llamado poblado.