Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Sequelize:JSON数组的强制更新_Node.js_Sequelize.js - Fatal编程技术网

Node.js 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方法在内部进行了优化,只更新真正

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方法在内部进行了优化,只更新真正 已更改。这意味着如果您不更改任何内容并调用save, Sequelize将知道保存是多余的,并且什么也不做,即。, 不会生成任何查询(它仍将返回承诺,但 将立即解决)

这很好,但似乎对json不起作用,我可以进行强制更新吗

从今天起,我必须对数组进行深度复制以保存它


如果有必要的话,我正在使用MariaDB IDK。

您似乎必须指定字段已更改

instance.changed( 'arr', true);
instance.save

如果您只是创建一个浅层副本,以便数组引用本身发生更改,即在推送之前,
instance.arr=[…instance.arr]
,它能工作吗?