【发布时间】:2020-04-02 08:33:28
【问题描述】:
我有一个想要更新的旧架构。更新架构后,在新架构之前保存的先前记录不会反映我在新架构上指定的新字段。如何使它们反映新架构上的所有字段。
我尝试使用mongoose defaults,但没有成功。
这是我的代码
const user = mongoose.Schema({
_id : mongoose.Schema.Types.ObjectId,
email : String,
firstname : String,
lastname : String
})
module.exports = mongoose.model('User', user)
我想添加age 字段(它应该出现在所有以前的文档中)。目前,只有新文档反映了age 字段。我怎么做?谢谢!
【问题讨论】:
-
据我所知,猫鼬模式正在写入,所以
default帮助您写入,如果在新的插入文档中,如果您没有发送age字段,那么猫鼬会写入doc 到 DB,包括age字段,架构中有默认值。但是,如果您想拥有该年龄字段,您必须使用默认值更新所有旧文档,或者您可以编写查询来执行此操作,您如何查询,您能给我们您的查询代码吗?