NodeJS Loopback:UpsertWith找到多个实例。

时间:2018-04-23 16:21:47

标签: node.js loopbackjs

我有一个自定义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!

如何防止这种情况发生?

1 个答案:

答案 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);
}