2015-04-29 54 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(); 
});