2015-04-29 2 views
5

Для моего проекта мы создали userSchema, который упростил выглядит следующим образом:мангуста равным другого значения

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

Пользователя имеет _id, который является строкой, которая также является его именем пользователя. Все работает до тех пор, пока я не попытался добавить дополнительное поле. То, что я хочу, - это когда пользователь создает учетную запись, его имя экрана равно значению _id. Позже он может настроить его, но по умолчанию он должен равняться значению _id. Я также пробовал:

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

Но, чем курьером _id не определен.

Как установить значение по умолчанию равное другому значению?

ответ

7

использовать pre промежуточного слоя объяснил here

userSchema.pre('save', function (next) { 
    this.screenname = this.get('_id'); // considering _id is input by client 
    next(); 
}); 
Смежные вопросы