【发布时间】:2019-12-24 17:21:57
【问题描述】:
我有一个像下面这样的猫鼬模式:
var schema = mongoose.Schema({
name: String
}
我有一些具有这些架构的文档,过了一会儿我添加了一个具有默认值的新字段:
var schema = mongoose.Schema({
name: String,
job: {type: String, default: function() { return "Job" + this.name.toLowerCase() }}
}
当我获得文档 (findOne) 时,我可以看到已设置默认值。但是当我检查数据库中的确切行时,尚未设置默认值!
当我添加新文档时,设置了默认值,一切正常;但是如何在数据库中设置旧文档的默认值?
【问题讨论】:
-
在架构中添加默认值后,默认值将添加到新/更新的文档中
-
@AbderrahimSoubaiElidrissi 所以我应该全部更新一次吗?
-
尝试使用钩子
prefind进行检查,例如如果字段不存在添加值