Reputation: 69
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?
Upvotes: 4
Views: 2378
Reputation: 986
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
Upvotes: 7