Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I define a field with a range of data in mongoose schema?

My current Mongoose Schema is this:

const mongoose = require('mongoose');
const resultSchema = new mongoose.Schema({
    scores: { type: Number, required: true },
    analysis: { type: String, required: true }
},
    { timestamps: true, toJSON: { virtuals: true } }
);
module.exports = mongoose.model('Result', resultSchema);

And I want that scores field has a range of numbers. For example 100 to 500.

What should I do?


Meanwhile, Can I use MongoDB operator in Mongoose?

like image 976
Ali Avatar asked Oct 18 '25 06:10

Ali


1 Answers

Mongoose has several built-in validators to satisfy exactly this use case.

Since scores is of type Number, you can use the min and max validators to validate a range in this manner:

const mongoose = require('mongoose');
const resultSchema = new mongoose.Schema({
    scores: {
        type: Number,
        required: true,
        min: 100,
        max: 500
    },
    analysis: {
        type: String,
        required: true
    }
}, { timestamps: true, toJSON: { virtuals: true } });
module.exports = mongoose.model('Result', resultSchema);

You can read about validation in Mongoose: https://mongoosejs.com/docs/validation.html

like image 92
Daksh Shah Avatar answered Oct 20 '25 20:10

Daksh Shah



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!