gpt4 book ai didi

node.js - 是否有任何功能可以将新属性添加到集合中的所有现有 mongodb 对象

转载 作者:可可西里 更新时间:2023-11-01 09:13:53 25 4
gpt4 key购买 nike

我有一个具有以下架构的现有数据库

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。有没有类似的功能。

最佳答案

这取决于您是否要向数据库中的所有记录添加相同的值,或者您是否需要每个员工都有不同的分支。

您可以通过简单地将它包含到您的模式中来强制您的模式模型有一个分支,如下所示:

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'}
});

现在,当您返回任何 Employees 时,默认情况下他们应该有一个分支,下次保存它们时,它将硬保存到数据库中。

如果您需要更新所有记录以拥有一个分支,您可以这样做:

EmployeeModel.updateMany({}, { $set: { branch: 'some_branch'} } function(err, res) {
// Success!
});

编辑

  • 使用 Model.updateMany() 将自动传入 { multi: true } 选项。
  • 使用 $set 运算符将确保您需要更改或添加的特定字段得到更新。
  • 您可以将它变成一个聚合管道以使用 $addFields,但我认为 $set 是一个表达式别名,应该可以让您访问所需的一切内容。

希望这对您有所帮助!

关于node.js - 是否有任何功能可以将新属性添加到集合中的所有现有 mongodb 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57625998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com