馃 Esquemas en Mongoose.

馃嵖 Que son los esquemas de Mongoose?

Un esquema en mongoo es una estructura JSON que contiene informaci贸n acerca de las propiedades de un documento. Puede tambien contener informaci贸n acerca de la validaci贸n y de los valores por default, y si una propiedad en particular es requerida. Los esquemas pueden contener l贸gica y otro tipo de informaci贸n importante.

En otras palabras, los esquemas sirven como guias de la estructura de los documentos. Estos son necesitados para la creaci贸n del modelo. Asi que antes de utilizar los modelos de manera apropiada, es necesario definir sus esquemas.

馃嵖 Ejemplo del uso de esquema en Mongoose.

const esquemaDeLibro = mongoose.Schema({
    name: String,
})

Mongoose ignora todas las propiedades que no sean definidas dentro del modelo de un esquema.

馃嵖 Mongoose types.

Los esquemas en Mongoose soportan estos tipos de datos.

Mongoose no vigila los cambios realizados al tipo mixed-type, asi que hay que invocar markModified() antes de guardar el objeto para asegurarse que los cambios aplicados a este cambio sean persistentes.

El ObjectId es agregado de forma autom谩tica si es omitido en un insert o save.

Ejemplo…

const ObjectId = mongoose.Schema.Types.ObjectId;
const Mixed = mongoose.Schema.Types.Mixed;
const esquemaDelLibro = mongoose.Schema({
    nombre: String,
    creado_en: Date,
    actualizado_en: { type: Date, default: Date.now },
    publicado: Boolean,
    idDelAuthor: {
        type: ObjectId,
        required: true,
    },
    descripcion: {
        type: String,
        default: null,
    },
    activo: {
        type: Boolean,
        default: false,
    },
    version: {
        type: Number,
        default: function() {
            return 1
        },
    },
    contribuyentes: [ObjectId],
});

Es posible crear tipos personalizados utilizando mongoose-types, estos pueden ser por ejemplo urls, emails, direcciones, etc.

Los esquemas se pueden conectar entre si. Lo que significa que cierta funcionalidad puede ser extendida a trav茅s de todos los esquemas de la aplicaci贸n.

Para una mejor organizaci贸n y reutilizaci贸n del c贸digo, podemos crear m茅todos para las instancias, aplicar plugins y definir hooks.

Para procesos de validaci贸n se recomienda el uso de validator.js y express-validator.

Primera interacci贸n con Mongoose. Tipos personalizados en los esquemas de Mongosse.
comments powered by Disqus