我有一个自定义js文件,我需要作为一个cron作业运行。
我在/server/command/import_action.js中创建了一个脚本,并在for循环中包含以下代码段:
Dish.upsertWithWhere({meal_id:meal.id} , dish, function(err, res) {
if (err) {
console.log(err.message);
}
});
它导入了一些项目,但它给了我一个错误:
There are multiple instances found.Upsert Operation will not be performed!
如何防止这种情况发生?
答案 0 :(得分:0)
您是否手动设置了列名meal_id
?如果您没有,则环回列名称为mealId
,并且您的where条件因为拼写错误列名而无声地失败。
另外:这通常是upsert的行为,你必须做这样的事情:
let result = await Dish.find({where: {meal_id: meal.id}});
if (result.rows.length) {
await Dish.updateAll({meal_id: meal.id}, dish);
}else {
await Dish.create(dish);
}