Tipos personalizados en Mongoose: Esquemas con campos especiales

Tipos personalizados en Mongoose: Esquemas con campos especiales

¿Cómo crear tipos de datos personalizados en Mongoose?

Mongoose permite definir getters y setters así como valores default en los esquemas. Lo mismo para validar y otros métodos útiles.

const postSchema = new mongoose.Schema({
    slug: {
        type: String,
        set: function (slug) {
            return slug.toLowerCase();
        },
    },
    numeroDeLikes: {
        type: Number,
        get: function (value) {
            return `${value} likes`;
        },
    },
    creadoEn: {
        type: String,
        get: function (value) {
            if (!value) return null;
            return value.toUTCString();
        },
    },
});