如何将一个对象数组插入映射表 - Sequelize
问题描述:
我们有两张表格 - 票据和设备。映射表'ticketdevice_map'将具有ticket_id(FK),device_id(FK)和一些其他值。 关联如下:如何将一个对象数组插入映射表 - Sequelize
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",
}]
}
在映射表应该像插入,
ticket_id device_id reg_color
1 200 red
1 201 red
答
使用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
});
}
}
});