我的猫鼬模式如下:
var schema = mongoose.Schema({
name: String
}
我有一些带有这些架构的文档,过了一会儿,我添加了一个默认值的新字段:
var schema = mongoose.Schema({
name: String,
job: {type: String, default: function() { return "Job" + this.name.toLowerCase() }}
}
获取文档(findOne
)后,可以看到已设置默认值。但是,当我检查数据库中的确切行时,尚未设置默认值!
添加新文档时,将设置默认值,并且一切都很好;但是如何在数据库中设置旧文档的默认值?
答案 0 :(得分:0)
尝试使用hook更新您的旧文档:
schema.post('init', function (doc) {
if(!doc.job){
doc.job = "Job" + doc.name.toLowerCase();
doc.save();
}
});