2016-03-30 6 views
2

ich dieses Mungo Schema haben:Wie den Wert eines Standard-Attribut eines Mungo-Schema festgelegt, basierend auf einer Bedingung

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

Ich möchte ein weiteres Feld hinzuzufügen namens Bild. Dieses Bild hat einen Standardwert, wenn das Geschlecht male ist und es einen anderen Standardwert haben wird, wenn das Geschlecht female ist. Ich fand, dass der Standardwert mit eingestellt werden kann:

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

Aber ich finde nicht, wie kann ich es mit Bedingung einstellen.

Antwort

2

Sie können dies mit einer document middleware erreichen.

Das kann pre:save Haken Wert auf das Dokument gesetzt werden, bevor es gespeichert wird:

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(); 
}); 
Verwandte Themen