尝试通过嵌入文档来建立馆藏之间的关系模型 但是在模式中进行验证并将“ required”设置为True时,就会出现err
一旦我解决了电影模式中的流派对象所需的问题,便会对此进行评论 但我要验证
const Movie = mongoose.model(
'Movies',
new mongoose.Schema({
title: {
type: String,
required: true,
trim: true,
minlength: 1,
maxlength: 255
},
numberInStock: {
type: Number,
required: true,
min: 0,
max: 255
},
dailyRentalRate: {
type: Number,
required: true,
min: 0,
max: 255
},
genre: genreSchema
required: true
})
);
const genreSchema = new mongoose.Schema({
name: {
type: String,
required: true,
minlength: 5,
maxlength: 50
}
});
TypeError:无效的架构配置:True
在路径required
处不是有效类型
答案 0 :(得分:0)
尝试在true旁边给出消息。 例如->必填:[true,“ Title required”]
答案 1 :(得分:0)
您可以在提取
时使用引用并使用填充genre: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'genreSchema',
required: true
}],
参考:Model Referenced one to Many Relationship between documents 进行更好的架构设计
答案 2 :(得分:0)
请共享完整代码。
也许主要原因是您没有使用
const Movie = mongoose.model(
'Movies',
new mongoose.Schema({
title: {
type: String,
required: true,
trim: true,
minlength: 1,
maxlength: 255
},
numberInStock: {
type: Number,
required: true,
min: 0,
max: 255
},
dailyRentalRate: {
type: Number,
required: true,
min: 0,
max: 255
},
genre: {
ref: 'SchemaName',
required: true
},
})
);
您可以这样做。
答案 3 :(得分:0)
将流派模型导出为
exports.genreSchema = genreSchema
然后在movies.js
文件中将模型导入为
import { genreSchema } from './genre.model'
尝试执行此操作将不会出现错误。
答案 4 :(得分:0)
删除required: true
,然后从官方docs中删除。注意所用猫鼬的版本。
我遇到了同样的错误并解决了。我的错误是使子文档成为模型,而不是将其保留为模式
const childSchema = new Schema({ name: 'string' });
const parentSchema = new Schema({
// Array of subdocuments
children: [childSchema],
// Single nested subdocuments. Caveat: single nested subdocs only work
// in mongoose >= 4.2.0
child: childSchema
});