我有一个具有以下架构的现有数据库
let Employee = new Schema({
first_name: { type: String },
last_name: { type: String },
title: { type: String },
email: { type: String },
gender: { type: String },
location: { type: String },
phone: { type: Number }
由于我的数据库中已经有很多记录,因此我想向数据库中添加一个新属性branch
。有同样的功能吗?
答案 0 :(得分:1)
这取决于您是否要将相同的值添加到数据库中的所有记录,还是需要每个Employee拥有不同的分支。
您可以像这样简单地将其包含在Schema中,从而强制您的Schema Model具有分支:
let Employee = new Schema({
first_name: { type: String },
last_name: { type: String },
title: { type: String },
email: { type: String },
gender: { type: String },
location: { type: String },
phone: { type: Number },
branch: { type: String, default: 'some_branch'}
});
现在,当您返回任何员工时,默认情况下他们应该有一个分支,并且下次保存它们时,会将其硬保存到数据库中。
如果您需要更新所有记录以具有分支,则可以执行以下操作:
EmployeeModel.updateMany({}, { $set: { branch: 'some_branch'} } function(err, res) {
// Success!
});
编辑
{ multi: true }
选项。希望这会有所帮助!