如何将对象数组插入映射表中 - Sequelize

时间:2017-10-19 10:53:59

标签: sql-server node.js sequelize.js

我们有两张桌子 - 门票和设备。映射器表'ticketdevice_map'将具有ticket_id(FK),device_id(FK)和一些其他值。 协会如下所示:

ticketdevice_map.belongsTo(collection.device, {
        as: 'device',
        foreignKey: 'device_id'
    })

    ticketdevice_map.belongsTo(collection.ticket, {
        as: 'ticket',
        foreignKey: 'ticket_id'
    })

故障单可以包含许多与之关联的设备。现在,当我创建一个故障单时,如何将这个设备数组插入'ticketdevice_map'表中。

示例:

{
"abc_id": "B222",
"devices": [{
    "device_id": 200,
    "reg_id": "aa",
    "reg_color": "red",
},{
    "device_id": 201,
    "reg_id": "aa",
    "reg_color": "red",
}]

}

在mapper表中

应插入,如

ticket_id device_id reg_color
 1          200       red
 1          201       red

1 个答案:

答案 0 :(得分:0)

使用sequelize这段代码可以帮到你。

models.tblTicket.findOne({
where : {
    ticket_id : req.body.ticket_id
}
}).then(function(tickets) {
if (tickets) {
    for (var i = 0; i < devices.length; i++) {
        models.ticketdevice_map.create({
            ticket_id : tickets.dataValues.ticket_id,
            device_id : devices[i].device_id,
            reg_color : devices[i].reg_color
        });
    }
  }
});