‫Instructor: En la última lección,
‫aprendimos sobre los esquemas y modelos de Mongoose,
‫por lo que ahora implementemos un
‫esquema y un modelo muy simple para nuestra aplicación.
‫Y por ahora, hagámoslo aquí mismo
‫en nuestro servidor. js archivo.
‫Más tarde, por supuesto,
‫lo trasladaremos a un archivo diferente.
‫Entonces, Mongoose se trata de modelos, y un
‫modelo es como un
‫plano que usamos para crear documentos.
‫Así que es un poco como clases
‫en JavaScript, que también usamos como
‫planos para crear objetos a partir de ellos, ¿verdad?
‫Entonces, nuevamente, creamos un modelo en
‫Mongoose para crear documentos usándolo,
‫y también para consultar, actualizar y eliminar estos documentos.
‫Básicamente, para realizar cada una de las operaciones
‫CRUD, crear, leer, actualizar y
‫eliminar, necesitamos un modelo Mongoose, y para crear
‫un modelo, en realidad necesitamos un esquema.
‫Entonces, en realidad creamos modelos a
‫partir del esquema de Mongoose
‫tal como aprendimos en el último video, y
‫usamos el esquema para describir nuestros datos, establecer valores predeterminados,
‫validar los datos y todo tipo de cosas por el estilo.
‫Así que, tal como verá
‫ahora, porque ahora vamos a empezar
‫a crear un esquema muy simple para nuestros recorridos.
‫Entonces, digamos que tourSchema es una
‫nueva mangosta. Esquema.
‫Agregue que aquí en realidad pasamos nuestro esquema como un objeto.
‫De acuerdo, también podemos pasar algunas opciones al esquema,
‫pero lo dejo para un video futuro en
‫el que realmente necesitemos esa función.
‫Entonces, ¿recuerdas los documentos de viaje que
‫solíamos crear en la última
‫sección cuando comenzamos a explorar Mongoose DB?
‫Así que siempre
‫les dimos un nombre, una calificación
‫y un precio, correcto, y ahora
‫repitamos eso aquí diciendo el nombre y luego
‫describiendo qué tipo de datos queremos después
‫del nombre, y queremos que sea una cadena.
‫Entonces, Mongoose realmente usa los tipos
‫de datos nativos de JavaScript, por lo que aquí podemos
‫decir cadena, o después de la calificación podemos decir que queremos
‫un número y lo mismo que el precio.
‫También debería ser un número, ¿verdad?
‫Entonces esta es la forma más básica de describir nuestros datos.
‫Entonces tenemos un nombre, una calificación y un
‫precio, y especificamos el tipo
‫de datos que esperamos para cada uno de estos campos.
‫De nuevo, esta es la
‫forma más básica de describir un esquema, pero
‫podemos ir un paso más allá definiendo algo
‫llamado opciones de tipo de esquema para cada
‫campo, o solo para algún campo específico.
‫Así que comencemos aquí con
‫el nombre, y
‫en lugar de simplemente especificarlo como una cadena, pasemos otro objeto.
‫Y ahora, decimos que queremos que el tipo sea
‫una cadena, pero ahora
‫podemos definir un par de opciones más, ¿de acuerdo?
‫Por ejemplo, podemos decir que este campo es obligatorio, por lo
‫que simplemente
‫establecemos la propiedad requerida aquí en verdadero, ¿de acuerdo?
‫Entonces, nuevamente, este objeto aquí son las opciones de tipo de esquema, y
‫pueden ser diferentes para diferentes tipos, por ejemplo,
‫el tipo de número tiene algunas
‫opciones de esquema diferentes a las de la cadena
‫aquí, pero muchas de ellas también son similares.
‫Entonces, por ejemplo, el requerido,
‫también podemos usarlo en el número, y hagámoslo aquí.
‫Entonces, el tipo, todavía queremos que
‫sea un número, y también queremos que sea obligatorio, ¿de acuerdo?
‫Ahora, aquí, en el campo obligatorio,
‫podemos especificar el error que queremos que se muestre
‫cuando nos falta este campo.
‫Entonces, para hacer eso,
‫solo tenemos que pasar una matriz, y la primera es verdadera.
‫Entonces, el primer elemento es verdadero y el
‫segundo es la cadena de error.
‫Digamos que una gira debe tener un nombre, y luego aquí
‫hagamos lo mismo.
‫El recorrido debe tener un precio, ¿de acuerdo?
‫Entonces también podemos establecer valores
‫predeterminados y hagámoslo aquí para la calificación.
‫Entonces, nuevamente, voy a especificar
‫algunas opciones de tipo de esquema aquí, que no es
‫obligatorio, por lo que es suficiente simplemente
‫definir el tipo aquí como lo hicimos nosotros, pero
‫si desea algunas características más, entonces necesitamos
‫al menos especificar el esquema. Tipo de objeto de opciones.
‫De acuerdo, y luego debemos especificar el tipo nuevamente, que es número, y
‫como predeterminado, quiero que sea 4. 5.
‫Entonces, si ahora creáramos un nuevo documento
‫de viaje usando este esquema y sin especificar la
‫calificación, automáticamente se establecería en 4. 5, ¿de acuerdo?
‫Y para terminar, probemos con otro aquí, lo que quiere
‫decir que el nombre debe ser único.
‫Entonces, único y configúrelo como verdadero, y así,
‫ahora podemos tener dos
‫documentos de viaje con el mismo nombre, ¿de acuerdo?
‫Entonces, este es nuestro esquema muy
‫básico, ahora sigamos adelante y
‫creemos un modelo a partir de él, ¿de acuerdo?
‫Y eso
‫es muy simple, simplemente creamos una variable llamada
‫Tour, y luego mangosta. modelo, luego el nombre del
‫modelo, que es Tour con una T mayúscula aquí,
‫de acuerdo.
‫Y eso es solo una especie
‫de convención en programación para usar siempre mayúsculas en
‫los nombres y variables de los modelos.
‫Entonces aquí es lo mismo, así que
‫también creé esta variable de recorrido aquí con una T mayúscula
‫para que sepamos que estamos tratando con un modelo aquí.
‫Muy bien, entonces el
‫nombre del modelo y luego el esquema, y eso es todo.
‫Así que así, creamos un recorrido
‫a partir del esquema que creamos aquí al principio.
‫De acuerdo, y en
‫el siguiente video usaremos este
‫modelo aquí para crear nuestro primer documento de gira, ¿de acuerdo?
‫Así que solo un resumen aquí, usamos nueva mangosta. Esquema aquí para
‫especificar un esquema para nuestros datos.
‫Entonces, básicamente describiéndolo y también haciendo algo de validación.
‫Por ejemplo, esto se requiere
‫aquí, esto es en realidad algo llamado validador
‫porque se usa para validar nuestros datos.
‫En este caso, simplemente para validar si
‫el nombre está realmente ahí.
‫Y hay muchos validadores en Mongoose, y en
‫realidad también podemos crear los nuestros, por lo
‫que, por supuesto, hablaremos de eso
‫un poco más tarde, nuevamente, una vez que realmente necesitemos estas características.
‫De todos modos, ahora avancemos rápidamente para
‫finalmente comenzar a usar el modelo
‫que acabamos de crear.