mongoose - 猫鼬:如果不存在则保存,如果存在则不会更新
问题描述
在猫鼬中,如果文档不存在,是否有一行代码可以保存文档,否则不要更新现有的。
我在网上搜索过,但大多数答案都是关于更新现有的一份文件。
解决方案
经过一些幸运的搜索,我发现以下链接非常有用:
- MongoDB 原子“findOrCreate”</a>
- Mongodb如何仅在不存在时插入(如果存在则不更新)
- Mongoose:原子 FindOne-Or-Insert(),如果找到不更新现有实例
- 如果不存在如何创建项目,如果存在则返回错误
关键是$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));
绝对欢迎任何想法或答案或改进!
推荐阅读
- amazon-web-services - 使用 lambda 函数将视频上传到 s3 存储桶,将视频详细信息上传到 dynamo db
- html - 当 Django views.py 没有将字典值传递给 html 时如何解决?
- python - 如何从 json 格式中删除 '\"'
- python - 如何在Python中按姓氏对从txt文件导入的名称列表进行排序
- scala - SBT 因“String.class 已损坏”而失败
- javascript - 选择 SVG 图标单击();带量角器
- php - 如何修复:无法使用 HTML2PDF 获取图像 [] 的大小
- mysql - 从数据库中检索分店最畅销产品的数据
- windows - Command Prompt 'cd' 命令详细解释
- python - 如何将组合框小部件中的选择(符号)定义为(全局)变量?