agi*_*ms7 3 node.js sequelize.js sequelize-cli
我试图找到一种方法来按顺序复制/克隆实例,但没有成功。有没有内置函数可以做到这一点?我想要的是简单地复制数据库中的行,而新项应仅具有不同的ID。
没有直接的功能,您可以做的是:
从中输入新内容
model.findOne({ //<---------- 1
where : { id : 1 } ,
raw : true })
.then(data => {
delete data.id; //<---------- 2
model.create(data); //<---------- 3
})
Run Code Online (Sandbox Code Playgroud)小智 5
如前所述,没有这样的直接函数(感谢 Vivek)
如果您发现它有用,请将以下代码放在您的模型类中:
async clone() {
let cData = await THISISMYMODEL.findOne({
where: { id: this.id},
raw: true,
});
delete cData.id;
return await THISISMYMODEL.create(cData);
}
Run Code Online (Sandbox Code Playgroud)
考虑到“THISISMYMODEL”应该是定义的模型类,“ id ”应该是使用的主键属性。
另外还要考虑到外键的使用(与其他模型的关系),因此会使用相同的键。否则你也应该克隆这些实例。
| 归档时间: |
|
| 查看次数: |
2543 次 |
| 最近记录: |