是否有可能在猫鼬中有一系列替代子文档模式?
例如,假设这个场景:如果我有一个人的主模式,并且我有一个名为车辆类型数组的字段,我希望能够定义子文档模式,但是对于每种车辆类型(汽车、摩托车、自行车、公共汽车等):
var car = new mongoose.Schema({
make: { type: String, required: true, default: 'Ford', trim: true },
model: { type: String, trim: true },
wheels: Number,
});
var motorbike = new mongoose.Schema({
make: { type: String, required: true, default: 'Honda', trim: true },
model: { type: String, trim: true },
seats: Number,
});
var bike = new mongoose.Schema({
make: { type: String, required: true, default: 'MuddyFox', trim: true },
model: { type: String, trim: true },
lights: Number,
});
var bus = new mongoose.Schema({
make: { type: String, required: true, default: 'MAN', trim: true },
model: { type: String, trim: true },
dents: Number,
});
/* person */
var person = new mongoose.Schema({
name: { type: String, required: true, default: 'Joe Bloggs', trim: true },
timeCreated: { type: Date, required: true, default: Date.now },
vehicles: [car, motorbike, bike, bus] /* this is what i want to do */
});
db.model('person', person);
注意人员模式。
因此,该人可以拥有任何这些车辆,但每辆车的数据仍会根据其自己的模式进行验证。
提前致谢