为什么在MongooseJS/MongoDB中使用.update?

为什么在MongooseJS/MongoDB中使用.update?,mongoose,Mongoose,似乎我可以.save保存现有文档,那么为什么我要使用.update?使用update的主要好处是它允许您以原子方式修改文档 规范示例是递增文档的数字字段: 使用保存: 调用findOne获取现有文档 修改内存中的文档,将其添加到数字字段中 调用save将更改提交到集合 使用更新: 使用$inc操作符调用update,在单个原子步骤中读取、修改和提交 使用save可以在这三个步骤中进行另一次编辑,然后被save覆盖并丢失

似乎我可以
.save
保存现有文档,那么为什么我要使用
.update

使用
update
的主要好处是它允许您以原子方式修改文档

规范示例是递增文档的数字字段:

使用
保存

  • 调用
    findOne
    获取现有文档
  • 修改内存中的文档,将其添加到数字字段中
  • 调用
    save
    将更改提交到集合
  • 使用
    更新

  • 使用
    $inc
    操作符调用
    update
    ,在单个原子步骤中读取、修改和提交
  • 使用
    save
    可以在这三个步骤中进行另一次编辑,然后被
    save
    覆盖并丢失