我有这样的问题Model.js
const mongoose = require('mongoose');
const validator = require('validator');
const questionSchema = new mongoose.Schema({
question: {
type: String,
required: [true, 'Question Required'],
trim: true
},
options: [ // this array should atleast have two objects meaning two options
{
optionNo: Number,
optionValue:{
type: String,
required: [true,'Option required'],
trim: true
}
},
]
});
const Question = mongoose.model('Question', questionSchema);
module.exports = Question;
我希望每个问题至少有两个选项,我如何在上面的“选项”字段中实现这一点。
答案 0 :(得分:1)
解决方案 1
const questionSchema = new mongoose.Schema({
question: {
type: String,
required: [true, 'Question Required'],
trim: true
},
options: {
type: [{
optionNo: Number,
optionValue:{
type: String,
required: [true,'Option required'],
trim: true
}
}],
validate: [(val) -> val.length > 1, 'Must have minimum two options']
}
});
解决方案 2
questionSchema.path('options')
.validate((val) -> val.length > 1, 'Must have minimum two options');
参考