你能为mongoosejs中的对象设置一个部分模式吗?

你能为mongoosejs中的对象设置一个部分模式吗? 说我有一个人对象,我想validation它总是有一个first_name和last_name字段。 但是我也想让用户保存自己select的其他字段。 说我有以下架构:

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" } 

那可能吗?

您可以使用Schema.Types.Mixed字段,它是一个自由forms的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(...);