我有一个这样的学校架构:
var SchoolSchema= new mongoose.Schema({
name: {type:String, required: true}
status: { type: String, default: "active" }
});
Mongoose 默认功能在两个层面上起作用:
1) 如果输入中不存在该字段,则在保存时将字段值设置为默认值。
2) 获取时,如果保存的文档中不存在该字段,则将字段值设置为默认值。
我希望它只在保存时将其设置为默认值,并且在获取文档时,如果记录中不存在状态属性,它应该为状态返回空值。目前,当我从记录中删除状态属性时,它会返回“事件”。
我有办法做这个 Mongoose 吗?
最佳答案
您可以做的是使用预保存中间件。 它看起来像这样:
schema.pre('save', function(next) {
// Change your fields
next()
})
此代码将在您保存您的 mongo 文档时激活。
Mongoose 还向您的对象添加了一个 isNew
字段,因此您可以扩展此代码以仅在这是第一次将文档保存到数据库时更改您的字段
schema.pre('save', function(next) {
if (this.isNew) {
// Change your fields
}
next()
})
关于node.js - 即使字段从文档中删除,Mongoose 也会返回字段的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49346190/