试图通过嵌入文档来对集合之间的关系进行建模,但是当在模式中进行验证并将“required”设置为True时,就会出现错误
一旦我在电影模式中注解了所需的类型对象,问题就解决了,但我需要验证
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
中的有效类型
7条答案
按热度按时间x4shl7ld1#
获取时可以使用引用和填充
有关更好的模式设计,请参阅:Model Referenced one to Many Relationship between documents
pw136qt22#
删除
required: true
并从官方的docs中删除。注意使用的mongoose版本。我得到了同样的错误并解决了它。我的错误是将子文档作为模型而不是模式8fsztsew3#
尝试在true旁边给出消息。例如--〉required:[true,“需要标题”]
e4yzc0pl4#
请分享完整代码。
也许主要的原因是你没有习惯
你可以这样做。
s5a0g9ez5#
将类型模型导出为
exports.genreSchema = genreSchema
然后在
movies.js
文件中将模型导入为import { genreSchema } from './genre.model'
尝试这样做,错误将不会出现。
zujrkrfu6#
因为您忘了在这里加上","
应为:
nc1teljy7#
如果您遇到"required:true"问题
不要传递函数
new mongoose.Schema({})
,取而代之的是,你只需要创建const Schema = mongoose.Schema;
,然后使用Schema({})
。一定会成功的。