2017-10-19 15 views
0

Nous avons deux tables: ticket et device. Une table de mappage 'ticketdevice_map' aura ticket_id (FK), device_id (FK) et d'autres valeurs. Les associations sont indiqués ci-dessous:Comment insérer un tableau d'objets dans une table de mappage - Sequelize

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

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

Un billet peut avoir un certain nombre de périphériques qui y sont associés. Maintenant, quand je crée un ticket, comment puis-je insérer ce tableau de périphériques dans la table 'ticketdevice_map'.

exemple:

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

}

dans le tableau mappeur il devrait être inséré comme,

ticket_id device_id reg_color 
1   200  red 
1   201  red 

Répondre

0

En utilisant ce code sequelize vous aidera.

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 
     }); 
    } 
    } 
});