mongoose的updateOne和updateMany
时间: 2023-09-12 21:07:30 浏览: 147
mongoose各个版本
5星 · 资源好评率100%
在Mongoose中,`updateOne()`和`updateMany()`都是用于更新一个或多个文档的方法,但是它们的使用场景有所不同。
`updateOne()`方法用于更新符合条件的单个文档。例如,如果你想将一个名为“John”的用户的年龄从30岁改为35岁,你可以使用如下代码:
```
User.updateOne({ name: 'John' }, { age: 35 }, (err, res) => {
if (err) throw err;
console.log(res);
});
```
上面的代码将会在`User`模型中查找名为“John”的用户,并将其年龄更新为35岁。如果找到了匹配的用户,方法将返回一个包含更新结果的对象。
相反,`updateMany()`方法用于更新符合条件的多个文档。例如,如果你想将所有年龄大于30岁的用户的状态从“pending”改为“active”,你可以使用如下代码:
```
User.updateMany({ age: { $gt: 30 } }, { status: 'active' }, (err, res) => {
if (err) throw err;
console.log(res);
});
```
上面的代码将会在`User`模型中查找所有年龄大于30岁的用户,并将其状态更新为“active”。如果找到了匹配的用户,方法将返回一个包含更新结果的对象。
需要注意的是,`updateOne()`和`updateMany()`方法都接受一个回调函数作为参数,该回调函数将在更新完成后被调用。该回调函数的第一个参数是错误对象(如果有),第二个参数是更新结果对象。
阅读全文