在Mongoose中,要在模式(Schema)中的对象或对象数组添加required
验证,你需要在定义模式时指定这些字段为必需的。下面是如何在对象和对象数组中添加required
验证的示例。
required
字段假设你有一个用户模式,其中包含一个地址对象,你希望确保street
和city
字段是必需的。
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const addressSchema = new Schema({
street: {
type: String,
required: true
},
city: {
type: String,
required: true
},
// 其他地址字段...
});
const userSchema = new Schema({
name: String,
address: addressSchema,
// 其他用户字段...
});
const User = mongoose.model('User', userSchema);
在上面的例子中,address
对象内的street
和city
字段都被设置为必需的。
required
字段如果你有一个对象数组,并且想要确保数组中每个对象都有某个必需的字段,你可以这样做:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const itemSchema = new Schema({
name: {
type: String,
required: true
},
quantity: {
type: Number,
required: true
}
// 其他商品字段...
});
const orderSchema = new Schema({
items: [itemSchema],
// 其他订单字段...
});
const Order = mongoose.model('Order', orderSchema);
在这个例子中,orderSchema
中的items
数组里的每个对象都必须包含name
和quantity
字段,这两个字段都被设置为必需的。
如果你在尝试添加required
字段时遇到问题,比如验证没有按预期工作,可能是以下几个原因:
required
关键字。required
,确保你已经正确定义了嵌套模式,并且在需要的地方应用了required
。required
字段,可能需要使用mongoose.Schema.Types.Mixed
或者重新定义整个模式。如果你遵循了上述步骤还是遇到问题,可以提供具体的错误信息或代码示例,以便进一步诊断问题所在。
领取专属 10元无门槛券
手把手带您无忧上云