【问题标题】:Sequelize update with associations使用关联进行后续更新
【发布时间】:2019-04-07 06:44:30
【问题描述】:

我有两个模型,用户和商家。我将从 UI 发送 JSON 数据。 在 Sequelize 中,我使用“包含”选项插入数据,如下所示。

models.user.create(req.body, { include: [models.merchant] });

按预期运行良好。所以我尝试更新如下数据。

var filter = {
            where: { id: id },
            include: [
                models.merchant
            ]
        };

models.user.update(req.body, filter);

以上代码仅更新用户数据。协会在更新中不起作用。我不知道这有什么问题。

请任何人帮助解决此问题。

提前致谢。

【问题讨论】:

    标签: node.js sequelize.js


    【解决方案1】:

    您要求的行为根本无法通过单个更新调用来完成。如果选中the docs for the update function,则没有包含选项,即 sequelize 只能为调用更新函数的模型的表构建更新查询。

    您必须单独更新关联。我建议您将这些更新放在一个事务中,以避免同时发生对同一对象的多个更新的任何问题。

    【讨论】:

    • 感谢您的回复 5ar。我会检查的。
    • @ErnestJones 我没有对此进行测试,但由于 docs for upsert“插入或更新单行” 并且没有提及 FK 和聚合对象,我不确定它会更新链接的子对象。我猜upsert 的更新用例与update 的实现大致相同
    猜你喜欢
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 2018-04-14
    • 2021-01-03
    • 2016-10-11
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    相关资源
    最近更新 更多