‫Maestro: Comencemos ahora a crear
‫documentos, probar el modelo y realmente comenzar a usar Mongoose.
‫Y estoy muy emocionado con
‫este video, así que comencemos aquí.
‫Entonces, lo que vamos a hacer es crear una nueva
‫variable, y la llamaré testTour, y este
‫será un nuevo documento creado
‫a partir del modelo de tour
‫que creamos en la última conferencia.
‫Entonces, lo
‫que vamos a hacer es decir nuevo Tour, y
‫luego pasar un objeto con los datos.
‫Así que nombre, digamos, nuevamente,
‫'The Forest Hiker', tal como lo
‫hemos estado usando antes, luego la calificación,
‫digamos 4. 7,
‫y luego el
‫precio, digamos 497, ¿de acuerdo?
‫Entonces, este es, nuevamente, un nuevo documento que creamos
‫a partir de un modelo de recorrido
‫o constructores de funciones, y
‫como dije antes, esto es un
‫poco usando constructores de funciones de JavaScript o
‫clases de JavaScript si está usando ES6, básicamente para creamos
‫nuevos objetos a partir de
‫una clase, correcto, y esa
‫es exactamente la misma sintaxis, en realidad, así
‫que usamos la
‫palabra clave name, y luego el
‫nombre de la clase en ES6, así, ¿de acuerdo?
‫Ahora bien, aquí no es exactamente lo
‫mismo, pero esta analogía es
‫útil para comprender cómo funciona esto.
‫Entonces, este documento de viaje de prueba que acabamos de
‫crear es una instancia del modelo de viaje, por
‫lo que ahora tiene un par de métodos
‫que podemos usar para
‫interactuar con la base de datos.
‫Así que déjame mostrarte eso.
‫Entonces ahora podemos decir testTour. save, y esto luego lo guardará
‫en la colección
‫de tours en la base de datos, está bien,
‫y es realmente tan simple como eso.
‫Entonces, nuevamente, tenemos nuestra instancia de documento
‫que es testTour, y allí
‫podemos llamar al método save para
‫guardar el documento en la base de datos.
‫Ahora, este guardado aquí devolverá
‫una promesa que luego podremos consumir.
‫Entonces, por ahora, usemos entonces para eso, y
‫en el futuro, usaremos async
‫await para consumir estas promesas, pero por ahora, mantengamos las
‫cosas simples y
‫no creemos más funciones, y en
‫su lugar, estamos simplemente usando
‫el método then aquí.
‫Entonces aquí, tenemos acceso al documento que se acaba
‫de guardar en la base de datos.
‫Entonces, básicamente, el valor de resultado de la promesa
‫que devuelve el método de guardar es
‫el documento final tal como está en la base de datos.
‫Entonces, sigamos adelante y
‫registremos el documento en la consola, ¿de acuerdo?
‫Ahora, por otro lado, guardar este
‫documento en la base de datos también podría
‫salir mal, así que detectemos ese error, ¿de acuerdo?
‫Así que, al igual que antes, usamos el
‫método de captura para detectar cualquier error potencial, por lo que
‫si hay un error al guardar el
‫documento en la base de datos,
‫podremos detectar ese error aquí
‫en este método.
‫Bien, básicamente, aquí en esta función estoy
‫pasando a catch.
‫Bien, por ahora, todo lo que quiero hacer, de verdad,
‫es también registrarlo en la consola.
‫Digamos, 'Error', agregue algunos emojis aquí para
‫hacerlo más visible en la
‫consola, y luego podemos pasar un
‫segundo argumento al registro de la consola, que
‫luego será el error, ¿de acuerdo?
‫¿Estás listo?
‫Entonces, vamos a guardarlo
‫ahora, y eso ejecutará el código que está aquí,
‫así que básicamente cree este nuevo recorrido e intente
‫guardarlo en la base de datos de inmediato, ¿de acuerdo?
‫Entonces, salvémoslo ahora
‫y veamos qué sucede en la consola,
‫y de hecho, aquí vamos.
‫Como puede ver, este es el documento
‫que se acaba de guardar en nuestra base de datos, ¿de acuerdo?
‫Entonces, aquí también vemos el
‫ID, y MongoDB simplemente lo genera automáticamente,
‫y es simplemente el identificador único del documento.
‫Entonces, al igual que sucedió antes en la sección
‫MongoDB, obtenemos automáticamente este identificador único para
‫el nuevo objeto.
‫Entonces Mongoose también agrega automáticamente esta V
‫y la pone a cero aquí, pero eso
‫no es realmente importante en este punto, ¿de acuerdo?
‫Lo que importa aquí es
‫que nuestro nuevo documento se agregó con éxito a la
‫base de datos, y solo para asegurarnos,
‫vayamos a Compass y echemos un vistazo a nuestra base de datos allí.
‫Así que aquí tenemos la colección
‫de recorridos y luego tenemos el documento que acabamos de crear.
‫Entonces, tiene exactamente la misma identificación y, por supuesto, todos
‫los demás datos que ingresamos allí, y de
‫hecho, este es el objeto que
‫acabamos de crear.
‫Y tenga en cuenta que en realidad habíamos
‫eliminado la colección de recorridos aquí
‫en uno de los videos anteriores,
‫correcto, pero Mongoose creó automáticamente esta nueva
‫colección aquí tan pronto como creamos el
‫primer documento usando el modelo de
‫recorrido, por lo que este
‫nombre aquí básicamente
‫viene a partir de ese modelo de gira,
‫simplemente nos da este nombre en plural, tal como lo teníamos antes.
‫Perfecto, acabamos de hacer que nuestra aplicación exprés
‫interactúe realmente con una base de datos
‫MongoDB por primera
‫vez, y eso es realmente asombroso, si me preguntas.
‫Entonces esto significa
‫que ahora mismo, podemos crear documentos directamente desde nuestro código.
‫Entonces, eso me hace muy feliz, así que
‫intentémoslo nuevamente con otro, de
‫acuerdo, pero en realidad antes de
‫hacer eso, quiero volver a
‫cargar este archivo aquí, que luego intentará
‫guardar este documento aquí en la base de
‫datos nuevamente. , cierto, simplemente porque todo
‫este código aquí
‫se ejecuta cada vez que guardamos el archivo.
‫Ahora, intentemos adivinar qué sucederá tan pronto
‫como guarde este archivo.
‫¿Puedes adivinar?
‫Esperemos, y
‫de hecho obtenemos algo diferente ahora,
‫obtenemos un error aquí,
‫y el error que vemos
‫es esta colección de errores de
‫clave duplicada, que aquí abajo dice esta clave duplicada, ¿de acuerdo?
‫Entonces ya tenemos un recorrido con
‫el nombre de 'Forest Hiker', y
‫ahora estábamos tratando de crear otro,
‫y como en nuestro esquema tenemos
‫esta propiedad única aquí, que no está
‫permitida, ¿recuerdas eso?
‫Así que establecimos esto
‫único aquí en verdadero para que sea
‫imposible tener dos recorridos con el mismo nombre,
‫por lo que acabamos de demostrar que esto realmente funciona.
‫Muy bien, simplemente reemplacemos el código
‫que tenemos aquí
‫para crear un nuevo recorrido con otro nombre.
‫Llamémoslo 'The Park Camper' y sigamos
‫adelante y eliminemos el precio y también
‫la calificación.
‫Entonces, ¿puedes adivinar qué va a pasar ahora?
‫De hecho, vamos a borrar, o
‫en realidad ya lo cargó
‫porque tan pronto como hice clic aquí, guardó
‫el archivo, y así, sí, acabamos de recibir otro error,
‫así que puedes verlo aquí,
‫lo que significa que no lo
‫guardamos correctamente. este documento a la base
‫de datos, y lo que obtuvimos aquí ahora es
‫un error de validación
‫proveniente del campo de precio que dice 'Un
‫Tour debe tener un precio',
‫y ese es exactamente el mensaje que especificamos aquí, ¿verdad?
‫Simplemente porque en esta línea dijimos
‫que el precio es un campo obligatorio, de acuerdo,
‫y entonces este
‫obligatorio, como mencioné, es un validador, y
‫aquí abajo, obtenemos un error de validación.
‫Y ahora
‫arreglemos eso y especifiquemos el precio, digamos 997, y le
‫damos otro guardado.
‫Ahora, esta vez, debería
‫funcionar porque la calificación no es necesaria,
‫y cuando llegamos
‫aquí, nuestro documento se guardó
‫con éxito en la base de datos, ¿ve?
‫Ahora, no especificamos la calificación aquí en este recorrido de
‫prueba, pero verá que sigue siendo 4. 5, y eso se debe
‫a que establecemos el valor
‫predeterminado en 4. 5 aquí.
‫Así que solo
‫quería mostrarte eso aquí en este ejemplo rápido.
‫De acuerdo, tuvimos éxito nuevamente, así que regresemos
‫aquí, recarguemos, estás haciendo clic en
‫este botón y, de hecho, ahora
‫tenemos nuestros dos recorridos.
‫Genial, y recuerdo lo increíble que me sentí cuando
‫esto funcionó por primera vez cuando comencé
‫a aprender Express y Mongo, y cómo crear
‫estas aplicaciones, por lo que
‫realmente espero que te sientas de
‫la misma manera en este
‫momento. ya que acaba de crear
‫sus primeros documentos utilizando Express
‫y, por supuesto, MongoDB.