Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
const mongoose = require('mongoose') // Define a schema const userSchema = new mongoose.Schema({ name: { type: String, required: [true, 'Name is required'], trim: true, minlength: 2, maxlength: 100 }, email: { type: String, required: true, unique: true, lowercase: true, match: [/^\S+@\S+\.\S+$/, 'Invalid email format'] }, age: { type: Number, min: 0, max: 120 }, role: { type: String, enum: ['user', 'admin', 'moderator'], default: 'user' }, hobbies: [String], address: { city: String, country: { type: String, default: 'US' } }, createdAt: { type: Date, default: Date.now } }, { timestamps: true // adds createdAt and updatedAt automatically }) // Virtual property — not stored in DB userSchema.virtual('initials').get(function () { return this.name.split(' ').map(n => n[0]).join('').toUpperCase() }) // Compile schema into a model const User = mongoose.model('User', userSchema) module.exports = User
Result
Open