我有一个像下面这样的mongoose模式:
var schema = mongoose.Schema({
name: String
}我有一些具有这些模式的文档,一段时间后,我添加了一个具有默认值的新字段:
var schema = mongoose.Schema({
name: String,
job: {type: String, default: function() { return "Job" + this.name.toLowerCase() }}
}当我获得文档(findOne)时,我可以看到设置了默认值。但是当我检查我的数据库中的确切行时,默认值还没有设置!
当我添加新文档时,设置了默认值,一切正常;但是如何在数据库中设置旧文档的默认值?
发布于 2019-08-19 21:29:42
尝试使用钩子更新您的旧文档:
schema.post('init', function (doc) {
if(!doc.job){
doc.job = "Job" + doc.name.toLowerCase();
doc.save();
}
});https://stackoverflow.com/questions/57557590
复制相似问题