📜  mongoose |更新()函数(1)

📅  最后修改于: 2023-12-03 15:03:02.454000             🧑  作者: Mango

Mongoose | 更新()函数

Mongoose 是一个 Node.js 应用程序的优秀的 MongoDB 对象模型库。 它提供了一种优雅的方式来建立、验证和操作 MongoDB 的数据库,而不用写过多的 MongoDB 代码。

Mongooseupdate() 函数让开发人员可以更加方便地更新数据库中的文档。

更新单个文档

以下示例演示如何使用 update() 函数更新单个文档:

const User = require('./userModel.js');

User.update({ name: 'John Doe' }, { age: 35 }, (error, result) => {
  if (error) {
    console.log('Error:', error);
  } else {
    console.log('Result:', result);
  }
});

在这个例子中,我们实际上是用 update() 函数找到了 name 属性为 'John Doe' 的文档,并将 age 属性更新为 35

请注意,在 update() 函数中,第一个参数是查询条件,指定要更新哪些文档。第二个参数是要更新的内容。

批量更新文档

以下示例演示如何使用 update() 函数批量更新文档:

const User = require('./userModel.js');

User.update({ occupation: 'student' }, { $set: { occupation: 'teacher' }}, { multi: true }, (error, result) => {
  if (error) {
    console.log('Error:', error);
  } else {
    console.log('Result:', result);
  }
});

在这个例子中,我们使用了 multi 选项告诉 update() 函数更新多个文档。我们将所有的 'student' 职业的用户更新为 'teacher' 职业的用户。

请注意,在批量更新时,我们需要使用 $set 操作符指定要更新的属性。

成功回调与更新后的文档

update() 函数的回调函数返回一个对象,展示了更新操作的结果。 在成功更新单个文档时,这个对象的 n 属性会为 1。 在成功批量更新文档时,这个对象的 n 属性会为更新的文档数量。 对于单个文档的更新,还可以使用 findOneAndUpdate() 方法。 findOneAndUpdate() 方法返回更新后的文档,而不是更新操作的结果对象。

const User = require('./userModel.js');

User.findOneAndUpdate({ name: 'John Doe' }, { age: 35 }, { new: true }, (error, updatedUser) => {
  if (error) {
    console.log('Error:', error);
  } else {
    console.log('Updated User:', updatedUser);
  }
});

在这个例子中,我们使用了 findOneAndUpdate() 方法更新了名字为 'John Doe' 的文档的年龄( age )。 在 findOneAndUpdate() 方法中,我们可以使用 new 选项来指定更新后的文档是否要返回。

以上就是 Mongooseupdate() 函数的介绍。这个函数可以帮助我们更方便地完成 MongoDB 数据库的更新操作。