尝试通过嵌入文档来模拟集合之间的关系 但是在模式中验证并将“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
您可以使用 references 并在获取时使用 populate
genre: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'genreSchema',
required: true
}],
Refer:模型引用文档之间的一对多关系 为了更好的模式设计
删除
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
});
尝试在 true 旁边给出消息。 例如--> required: [true, "Title required"]
请分享完整代码。
也许主要原因是你没用过
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
},
})
);
你可以这样做。
导出流派模型为
exports.genreSchema = genreSchema
然后在
movies.js
文件中将模型导入为
import { genreSchema } from './genre.model'
尝试这样做错误不会出现。
因为你忘了在这里加上“,”:
genre: genreSchema <<<here
required: true
应该是:
genre: genreSchema,
required: true
如果你面临“required:true”的问题
不要传递函数
new mongoose.Schema({})
。而不是这个你只需要做
const Schema = mongoose.Schema;
然后使用Schema({})
.
肯定有用。
A simple way to solve it.
import { Schema, model, Model } from 'mongoose';
const obj1Scheema:Schema = new Schema({
genre:{type:genreSchema.schema, ... rest of the presets}
GenreArr: {type:[genreSchema.schema], ... rest of the presets}
})
//genre schema:
const genreSchema = new mongoose.Schema({
name: {
type: String,
required: true,
minlength: 5,
maxlength: 50
}
});
/*
genre:{ ... genre fields}
GenreArr:[{... genre fields}]
*/
I hope to help you all.