📜  mongoose | updateMany()函数(1)

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

Mongoose | updateMany()函数

updateMany()函数是Mongoose ODM(对象文档映射)库提供的一个方法,使用它可以更新匹配特定查询条件的多个文档。

语法
Model.updateMany(filter, update, options, callback)
  • filter:查询条件,可以是一个对象或者一个Mongoose查询实例。
  • update:需要更新的内容,可以是一个对象或者一个Mongoose查询实例。
  • options(可选):一个可配置的选项对象。
  • callback(可选):回调函数,用于在操作完成后处理结果。
示例

下面的示例将演示如何使用updateMany()函数更新数据库中所有年龄大于25岁的用户的名字:

const mongoose = require('mongoose');
const User = mongoose.model('User');

User.updateMany({ age: { $gt: 25 } }, { name: 'Alice' }, (err, res) => {
  if (err) {
    console.log(err);
  } else {
    console.log(`${res.n} documents updated`);
  }
});

上面的代码中,我们查询了年龄大于25岁的所有用户,然后更新了他们的名字为"Alice"。在回调函数中,我们通过检查res.n属性的值来判断更新操作是否成功。

选项

updateMany()函数的第三个参数可以是一个选项对象,用于配置具体的更新操作。下面列出的是一些常用的选项:

  • new:如果设置为 true,则返回更新后的文档。
  • multi:如果设置为 true,则可以更新多个文档而不仅仅是一个。
  • overwrite:如果设置为 true,则替换文档而不是将内容添加到文档中。默认为 false。
  • upsert:如果设置为 true,则当没有匹配项时将插入新文档。默认为 false。

示例代码:

User.updateMany({ age: { $gt: 25 } }, { name: 'Alice' }, { multi: true, new: true }, (err, res) => {
  if (err) {
    console.log(err);
  } else {
    console.log(res);
  }
});
总结

updateMany()函数是一个非常方便的方法,可以快速地更新满足指定查询条件的多个文档。除了基本的查询和更新之外,还可以使用选项对象来配置更高级的操作。如果你想要了解更多关于Mongoose的知识,请参考官方文档。