如何克隆/复制实例项/行

时间:2018-08-07 11:18:06

标签: node.js sequelize.js sequelize-cli

我试图找到一种方法来按顺序复制/克隆实例,但没有成功。有没有内置函数可以做到这一点?我想要的是简单地复制数据库中的行,而新项应仅具有不同的ID。

3 个答案:

答案 0 :(得分:4)

没有这种直接功能,您可以做的是:

  1. 获取要克隆/复制的对象
  2. 从中删除主键
  3. 从中新建一个条目

    model.findOne({ //<---------- 1
                    where : { id : 1 } , 
                    raw : true })
    .then(data => {
        delete data.id; //<---------- 2
        model.create(data); //<---------- 3
    })
    

答案 1 :(得分:0)

在Model.js中编写一个Model.create(data)函数,然后从循环内部调用此函数,您需要多次创建同一数据的副本。

答案 2 :(得分:0)

您可能需要更新名称或其他字段以将其标识为副本,

const data = await model.findOne({ where: {id: 1}, raw:  true, attributes: { exclude: ['id'] } });

data.name = data.name + '(copy)';
const newRecord = await model.create(data);
相关问题