2013-12-19 45 views
2

你能爲mongoosejs中的對象設置一個部分模式嗎?假設我有一個person對象,並且我想驗證它始終有first_name和last_name字段。但我也想讓用戶保存他們選擇的其他領域。說我有以下模式:你能爲mongoosejs中的對象設置一個部分模式嗎?

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

這可能嗎?

回答

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(...); 
+0

嗯,這不正是我想要的,但它可能工作。我希望能夠添加額外的領域,而不是所有的數據都在一個額外的預設領域。 – kidbrax

相關問題