mongoose里.save()/update()/findOneAndUpdate()的区别

打个广告 mongoose 中文文档翻译招募中 https://github.com/ssshooter/…

.save()和update()

  • update比find之后save()效率高,因为这样不用读取整个文档。
  • Mongoose的update是MongoDB的update,但是Mongoose的save可能是MongoDB的插入或是update。
  • 关于save,mongoose会自动diff新文档,只更改更新部分。这有利于原子性。
  • update不能触发中间件,validation默认不能,但是可以修改。

update()和findOneAndUpdate()

  • update()返回数据处理条数
  • findOneAndUpdate()返回处理后的数据
  • 简单来说,你需要获取数据就用findOneAndUpdate(),只需要修改数据而不关注修改后数据那就用update()。

参考文章
https://stackoverflow.com/que…
https://stackoverflow.com/que…

http://www.nodeclass.com/api/…

    原文作者:ssshooter
    原文地址: https://segmentfault.com/a/1190000009706886
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞