我有2个模型(父子):使用Sequelize定义的items和cart_items。 关系:
db.items.hasMany(db.cart_items, { foreignKey: 'itemId' });
db.cart_items.belongsTo(db.items, { foreignKey: 'itemId' });
项目有价格,cart_items有itemPrice字段,我需要用item.price字段更新。
我需要使用来自父模型的数据对子模型进行批量更新。 Sequelize有可能吗? 像这样:
db.cart_items.update(
// values
{ itemPrice: db.items.price }, // Related parent item model = 0
// options
{ where: this.getCartItemsQueryObj(userId) } // This is ok
);
我可以使用原始mysql查询:
return db.sequelize.query(`
UPDATE cart_items ci
JOIN items i
ON ci.itemId = i.id
SET ci.itemPrice = i.price
WHERE ci.userId=:userId AND ci.orderId IS NULL`,
{ replacements: { userId: userId }, type: db.sequelize.QueryTypes.UPDATE }
);