Node.js Sequelize:JSON数组的强制更新
Sequelize在某些情况下不会更新JSON字段 例如,我有:Node.js Sequelize:JSON数组的强制更新,node.js,sequelize.js,Node.js,Sequelize.js,Sequelize在某些情况下不会更新JSON字段 例如,我有: [[1]] (an array inside array) 我试着推动一些东西: instance.arr[0].push(1); // [[1,1]] instance.save(); // or: instance.update({arr: instance.arr}); 现在在实例内部,我已经更改了数组,但在db内部没有任何更改。甚至没有发送查询:( 从sequelize网站: save方法在内部进行了优化,只更新真正
[[1]] (an array inside array)
我试着推动一些东西:
instance.arr[0].push(1); // [[1,1]]
instance.save();
// or:
instance.update({arr: instance.arr});
现在在实例内部,我已经更改了数组,但在db内部没有任何更改。甚至没有发送查询:(
从sequelize网站:
save方法在内部进行了优化,只更新真正
已更改。这意味着如果您不更改任何内容并调用save,
Sequelize将知道保存是多余的,并且什么也不做,即。,
不会生成任何查询(它仍将返回承诺,但
将立即解决)
这很好,但似乎对json不起作用,我可以进行强制更新吗
从今天起,我必须对数组进行深度复制以保存它
如果有必要的话,我正在使用MariaDB IDK。您似乎必须指定字段已更改
instance.changed( 'arr', true);
instance.save
如果您只是创建一个浅层副本,以便数组引用本身发生更改,即在推送之前,
instance.arr=[…instance.arr]
,它能工作吗?