0%

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

.save()和update()
update比find之后save()效率高,因为这样不用读取整个文档。
Mongoose的update是MongoDB的update,但是Mongoose的save可能是MongoDB的插入或是update。

关于save,mongoose会自动diff新文档,只更改更新部分。这有利于原子性。
update不能触发中间件,validation默认不能,但是可以修改。
update()和findOneAndUpdate()
update()返回数据处理条数
findOneAndUpdate()返回处理后的数据
简单来说,你需要获取数据就用findOneAndUpdate(),只需要修改数据而不关注修改后数据那就用update()。