首页 > 解决方案 > 如何在猫鼬模式中定义具有一系列数据的字段?

问题描述

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

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 运算符吗?

标签: javascriptnode.jsmongodbmongoose

解决方案


Mongoose 有几个内置的验证器来完全满足这个用例。

由于scoresis 的 type 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);

您可以阅读有关 Mongoose 中的验证:https ://mongoosejs.com/docs/validation.html


推荐阅读