javascript - 如何仅在使用猫鼬的数据库中没有文档时为数据库播种
问题描述
我有一个播种器功能,可以将数据播种到数据库中。当应用程序启动时,我也会运行播种机。现在我正在播种重复的数据。如何修改我的函数,以便仅在数据库集合中没有数据的情况下为数据库播种数据?
const importData = async () => {
try {
await ExhibitModel.create(exhibits);
console.log("Data imported");
process.exit();
} catch (err) {
console.error(err);
}
};
解决方案
不要使用插入。
使用更新upsert=true
。_ 更新将查找与您的查询匹配的文档,然后它将修改您想要的字段,然后,upsert: true
如果没有文档与您的查询匹配,您可以告诉它是否要插入。
db.collection.update(filter, update, {upsert:true})
推荐阅读
- python - 使用条件从索引 1 开始替换数据框中的所有列
- php - Laravel 重定向返回页面 html 而不是重定向
- c - fgets 将换行符放在缓冲区的末尾
- python - 是否可以从其他模型打印报告?
- python - 对象没有属性“is_valid”
- django - 获取唯一字段错误时如何更新Django中的数据
- rust - 如何从特征对象获取对具有生命周期注释的结构的引用?
- html - R Markdown kable表使用$登录列名进行html输出
- c++ - 指针值的差异
- laravel - Laravel 7 - 如何将请求数组循环到控制器以用 eloquent 附加数据