2015-04-29 55 views
5

我的項目默認值我已經創建了簡化的userSchema如下所示:貓鼬等同於其他價值

var userSchema = new Schema({ 
    _id: String, 
    screenname: {type: String, required: false, default: "equal _id"}, 
}); 

用戶有_id這是一個字符串,這也是他的用戶名。 一切工作到目前爲止,直到我試圖添加一個額外的字段screenname。我想要的是當用戶創建一個帳戶時,他的屏幕名稱等於_id的值。稍後他可以調整它,但默認情況下它應該等於_id的值。我也試過:

screenname: {type: String, required: false, default: _id}, 

但比ofcourse _id沒有定義。

我應該如何設置默認值等於另一個值?

回答

7

使用pre中間件解釋here

userSchema.pre('save', function (next) { 
    this.screenname = this.get('_id'); // considering _id is input by client 
    next(); 
});