如何在mongodb中设置新字段的默认值?

时间:2019-08-19 13:19:16

标签: mongodb mongoose

我的猫鼬模式如下:

var schema = mongoose.Schema({
    name: String
}

我有一些带有这些架构的文档,过了一会儿,我添加了一个默认值的新字段:

var schema = mongoose.Schema({
    name: String,
    job: {type: String, default: function() { return "Job" + this.name.toLowerCase() }}
}

获取文档(findOne)后,可以看到已设置默认值。但是,当我检查数据库中的确切行时,尚未设置默认值!

添加新文档时,将设置默认值,并且一切都很好;但是如何在数据库中设置旧文档的默认值?

1 个答案:

答案 0 :(得分:0)

尝试使用hook更新您的旧文档:

 schema.post('init', function (doc) {

  if(!doc.job){
  doc.job = "Job" + doc.name.toLowerCase();
  doc.save();

 } 

});