Sequelize JSON 字段仅更新一个字段

Mah*_*aya 6 node.js sequelize.js

我有一个像这样的 JSON 字段。{Price:0,Title:'Test'}。我想使用sequelize 将 MYSQL 上的 Price 值更新为 10。我正在使用 MYSQL 8 并支持 JSON 字段。但是在sequelize中想要更改仅价格,sequelize直接写入带有{Price:10}的字段,而其他字段正在删除。我该如何解决这个问题?

(async () => {
  await e_products_v2.update(
    {
      Preferences: {
        Price: 0,
      },
    },
    { where: { id: 1 } }
  );
})();
Run Code Online (Sandbox Code Playgroud)

Kin*_*one 6

let p = await db.e_products_v2.findOne({ where: { id: 20 } })
        
p.Preferences = { ...p.Preferences, Price: 10 }
await p.update({ Preferences: p.Preferences })
Run Code Online (Sandbox Code Playgroud)

  • https://github.com/sequelize/sequelize/issues/8604#issuecomment-495386558 (2认同)