Mongoose 的 .save() 和 update() 方法有何不同?

阅读时长 4 分钟读完

在使用 Node.js 并构建 MongoDB 应用程序时,Mongoose 是一个广泛使用的 ODM(对象文档映射)库。其中,两个常见的方法是 .save()update()。但是,这两种方法之间有什么区别呢?

.save() 方法

.save() 方法是将新的文档保存到数据库中或更新现有文档的简单方法。以下是一个例子:

但是,如果您打算更新现有文档,您需要首先检索该文档并对其进行更改,然后再调用 .save() 方法。

请注意,这里使用了回调函数来处理错误和结果。在实际应用中,您可能希望使用 Promise 或 async/await 更好地处理这些操作。但是,在这个例子中,我们将保持简单。

update() 方法

.update() 方法允许您在一次查询中更新多个文档。以下是一个例子:

这里,我们将所有名字为“John Doe”的用户的名称更改为“Jane Doe”。请注意,您需要传递两个参数作为筛选器和要执行的更改。此外,该方法仅返回有关执行操作的少量信息。

如果希望获得更新的实际文档,请改用新的 .findOneAndUpdate().updateOne() 等方法(因为 .update() 已被废弃):

在这个例子中,我们使用了 .findOneAndUpdate() 方法,并将 new 选项设置为 true,以便返回实际更新后的文档。

区别

  • .save() 方法用于保存新文档或更新现有文档。
  • .update() 方法仅在查询结果中更改多个文档,只返回有关操作执行情况的少量信息。
  • 当您需要更新单个文档时,应使用 .findOneAndUpdate().updateOne() 等方法。

结论

在本文中,我们已经介绍了 Mongoose 中两种常见的方法:.save()update()。虽然它们都可以用于更新文档,但它们之间存在一些区别。.save() 方法用于保存新文档或更新现有文档。.update() 方法用于在查询结果中更改多个文档,并只返回有关操作执行情况的少量信息。当您需要更新单个文档时,应使用 .findOneAndUpdate().updateOne() 等方法。

尽管这些方法是相

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/30902

纠错
反馈