2016-03-30 77 views
2

我有這樣的貓鼬架構的價值:如何設置一個貓鼬模式的默認屬性的基礎條件

var UserSchema = new Schema({ 
    "name":String, 
    "gender":String, 
}); 

我想添加一個名爲圖像的另一個領域。如果性別爲male,則該圖像將具有默認值,如果性別爲female,則該圖像將具有另一個默認值。我發現默認值可以設置爲:

image: { type: ObjectId, default: "" } 

但是我沒有找到如何設置條件。

回答

2

您可以通過使用document middleware來實現此目的。

pre:save鉤可以被用於設置對文檔的值被保存之前:

var UserSchema = new Schema({ 
    "name":String, 
    "gender":String, 
}); 

UserSchema.pre('save', function(next) { 
    if (this.gender === 'male') { 
    this.image = 'Some value'; 
    } else { 
    this.image = 'Other value'; 
    } 

    next(); 
});