您可以在mongoosejs中为对象设置部分架构吗?假设我有一个person对象,我想验证它总是有一个first_name和last_name字段。但我也希望允许用户保存他们选择的其他字段。假设我有以下架构:
var userSchema = new mongoose.Schema({
first_name : { type: String, required: "first name required" }
last_name : { type: String, required: "last name required" }
})
但我希望该应用能够发布此内容:
{
first_name: "john",
last_name: "doe",
field_not_in_schema: "info"
}
这可能吗?
答案 0 :(得分:2)
您可以使用Schema.Types.Mixed
字段,这是一个自由格式的JS对象:
var userSchema = new mongoose.Schema({
first_name : { type: String, required: "first name required" },
last_name : { type: String, required: "last name required" },
data : { type: Schema.Types.Mixed }
})
以下是填充它的方法:
var user = new User({
first_name: 'John',
last_name: 'Doe',
data: { sex: 'Male', eyeColor: 'blue' }
});
user.save(...);