在应用程序不断发展的过程中,更新/迁移Mongoose模式的最佳实践(或工具)是什么?
在应用程序不断发展的过程中,更新/迁移Mongoose模式的最佳实践(或工具)是什么?
有趣的是,MongoDB诞生的目的就是为了解决关系型数据库中存在的架构问题。如果字段是必填项,您只需要在架构定义中设置默认值,而无需迁移任何内容。
new Schema({
name: { type: string }
})
收件人:
new Schema({
name: { type: string },
birthplace: { type: string, required: true, default: 'neverborn' }
});
我遇到了一个问题,我需要更新我的数据库以反映我的模式的更改。经过一些研究,我决定尝试在mongo控制台中使用updateMany()函数进行更新,我认为它运行得非常好。
要将此应用于vimdude的示例,则代码如下:
try {
db.<collection>.updateMany( { birthplace: null }, { $set:
{"birthplace": "neverborn" } } );
} catch(e) {
print(e);
}
updateMany()函数将根据过滤器更新集合中的所有文档。在这种情况下,过滤器正在查找字段“birthplace”为空的所有文档。然后,在这些文档中设置一个名为“birthplace”的新字段,并将其值设置为“neverborn”。
运行代码后,根据您的情况进行修改并运行:
db.<collection>.find().pretty()
为了验证更改已经完成,您的集合中每个文档的末尾应该显示带有值“neverborn”的新字段“birthplace”。
希望这有所帮助。