我有这样的学校模式:
var SchoolSchema= new mongoose.Schema({
name: {type:String, required: true}
status: { type: String, default: "active" }
});
Mongoose默认功能适用于两个级别:
1)如果输入中没有该字段,则在保存时将字段值设置为默认值
2)在提取时,如果保存的文档中不存在该字段,则将字段值设置为默认值。
我希望它只在保存时将其设置为默认值,并且在获取文档时,如果记录中不存在status属性,则应该为状态返回null值。目前,当我从记录中删除状态属性时,它会返回“活动”。
有没有办法可以做Mongoose?
答案 0 :(得分:0)
您可以使用预先保存的中间件。 它看起来像这样:
schema.pre('save', function(next) {
// Change your fields
next()
})
保存mongo文档时,将激活此代码。
Mongoose还会在您的对象中添加isNew
字段,因此如果这是第一次将文档保存到数据库,您可以将此代码扩展为仅更改字段
schema.pre('save', function(next) {
if (this.isNew) {
// Change your fields
}
next()
})