2015-04-29 16 views
5

dla mojego projektu Utworzyliśmy userSchema który uproszczone wygląda następująco:mangusta równa drugiej wartości

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

Użytkownik ma _id że to łańcuch, który jest również jego nazwa. Wszystko działa tak długo, dopóki nie spróbowałem dodać dodatkowej nazwy ekranowej pola. To, czego chcę, to kiedy użytkownik tworzy konto, jego screenname jest równe wartości _id. Później może go dostosować, ale domyślnie powinien być równy wartości _id. Próbowałem też:

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

Ale niż oczywiście _id nie jest zdefiniowany.

Jak ustawić wartość domyślną na równą inną wartość?

Odpowiedz

7

użyć pre middleware wyjaśnił here

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