如何根据条件设置Mongoose模式的默认属性的值

我有这个mongoose模式:

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

我想添加另一个名为image的字段。 如果性别是male ,则此图像将具有默认值,如果性别是male ,则将具有另一个默认值。 我发现默认值可以设置为:

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

但我不知道如何设定条件。

您可以使用文档中间件来实现这一点。

pre:save之前,可以使用pre:save钩子在文档上设置一个值:

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