Sequelize Upsert Query

时间:2016-11-05 07:49:27

标签: mysql node.js sequelize.js

我使用sequelize进行upsert,但关联的模型无法更新。

我有一个Project模型和一个FacultyInfo模型,两者之间的关系是:

Project.belongsTo(models.FacultyInfo, {
          as : 'Faculty',
          onDelete: "CASCADE"
      })

现在,在创建模型时,我使用Web表单提交数据并同时创建两个模型,如下所示:

var project = models.Project.create({
    description: req.body.description,
    url: req.body.url,
    // ...
    Faculty: {
        name: req.body.name,
        email: req.body.email,
        }
}, {
    include: [ {model: models.FacultyInfo, as: 'Faculty'} ]
}).then(function (task) {
    //
});

这完美无缺。现在我想以类似的方式做一个upsert。在上面的代码中,如果我将create替换为upsert,并将Project的主键作为参数传递,则Project模型会更新(如果找到),但FacultyInfo模型不会获得更新。如果未找到项目,则会创建(按预期),但不会创建FacultyInfo模型,而project项中的faculty_id是外键,Null

也许,有一种方法可以按照我想要的方式工作,但是我还没有找到它,而且我已经在github / stackoverflow上搜索了这么多帖子,什么不是。< / p>

如果有人能告诉我如何实现这一目标,或者向我展示另一种实现这一目标的方法,我将不胜感激。

0 个答案:

没有答案