如何在猫鼬模式中定义包含一系列数据的字段?

时间:2019-03-09 10:33:41

标签: javascript node.js mongodb mongoose

我当前的猫鼬模式是这样的:

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);

我希望分数字段具有一定范围的数字。例如100到500。

我该怎么办?


同时,我可以在Mongoose中使用MongoDB运算符吗?

1 个答案:

答案 0 :(得分:0)

猫鼬有几个内置的验证器,可以完全满足此用例。

由于scores的类型为Number,因此可以使用minmax验证器以这种方式验证范围:

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);

您可以阅读有关猫鼬验证的信息:https://mongoosejs.com/docs/validation.html