r32*_*r32 1 node.js sequelize.js
在某些情况下,Sequelize 不会更新 JSON 字段。
例如,我有:
[[1]] (an array inside array)
Run Code Online (Sandbox Code Playgroud)
我正在努力推动一些事情:
instance.arr[0].push(1); // [[1,1]]
instance.save();
// or:
instance.update({arr: instance.arr});
Run Code Online (Sandbox Code Playgroud)
现在,在实例内部,我更改了数组,但数据库内部没有任何更改。甚至没有发送查询。:(
来自续集网站:
https://sequelize.org/master/manual/model-instances.html save 方法在内部进行了优化,仅更新真正更改的字段。这意味着,如果您不更改任何内容并调用 save,Sequelize 将知道该保存是多余的并且不执行任何操作,即不会生成任何查询(它仍然会返回 Promise,但会立即解析)。
这很好,但它似乎不适用于 JSON。我可以强制更新吗?
截至今天,我必须对数组进行深层复制才能保存它。
我正在使用MariaDB。我不知道这是否重要。
看来你必须指定该字段已更改
instance.changed( 'arr', true);
instance.save
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2370 次 |
| 最近记录: |