首页 > 解决方案 > 猫鼬:如果不存在则保存,如果存在则不会更新

问题描述

在猫鼬中,如果文档不存在,是否有一行代码可以保存文档,否则不要更新现有的。

我在网上搜索过,但大多数答案都是关于更新现有的一份文件。

标签: mongoose

解决方案


经过一些幸运的搜索,我发现以下链接非常有用:

关键是$setOnInsert在更新参数和upsert:true选项参数中设置。

这是一个代码示例:

let query = {id: searchId};
let update = { 
  $setOnInsert: {
    id: searchId,
    foo: foo,
    bar: bar,
  }
};
  
let options = { upsert: true };
SampleModel.findOneAndUpdate(query, update, options)
  .catch(error => console.error(error));

绝对欢迎任何想法或答案或改进!


推荐阅读