Node.js 如何定义mongoose模式中对象数组的最小长度?
我有自己的问题model.jsNode.js 如何定义mongoose模式中对象数组的最小长度?,node.js,mongoose,mongoose-schema,Node.js,Mongoose,Mongoose Schema,我有自己的问题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
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;
我希望每个问题至少有两个选项,如何在上面的“选项”字段中实现这一点。解决方案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');
参考文献