如何通过节点js中的sequelize更新关联记录?
Posted
技术标签:
【中文标题】如何通过节点js中的sequelize更新关联记录?【英文标题】:how to update records in association though sequelize in node js? 【发布时间】:2017-09-12 13:54:01 【问题描述】:我们正在尝试通过 sequelize 更新关联记录,但它仅更新触发它的模型的记录或直接模型没有受查询影响的关联模型。
执行此操作的任何途径
return db.product.findById( 75759,
include: [
model: db.productDescription
])
.then(product =>
var rahulpro = ;
Object.assign(rahulpro,product);
// console.log(rahulpro.product_description.description);
rahulpro.name = "44444";
rahulpro.product_description.dataValues.description = "rahul";
product.updateAttributes(rahulpro);
);
您预计会发生什么?
我们要更新描述模型的数据
实际发生了什么?
没有改变描述数据库
数据库版本: mysql 5.7 续集版本: 4.8.3
【问题讨论】:
【参考方案1】:我在使用 Sequelize 时遇到了非常相似的问题。经过数小时的研究,我发现没有很好的方法来处理通过表附加的数据。
对于您要执行的操作,您必须执行 2 次查询,从您的产品表中找到 product
实例,然后查询 product_description
表中的 description.product_id === product.id
。
然后将更改写入描述实例,然后写入产品实例。
这是我项目中 ORM 的一个缺点,对于更复杂的查询,我们开始使用 raw sequel,因为它使我们能够做这样的事情。
【讨论】:
以上是关于如何通过节点js中的sequelize更新关联记录?的主要内容,如果未能解决你的问题,请参考以下文章