Sequelize包含嵌套对象的数组-node.js
我有关系: (Track)--M:1-->(TrackChannel)(UserChannel)解决方案:Sequelize包含嵌套对象的数组-node.js,node.js,postgresql,sequelize.js,Node.js,Postgresql,Sequelize.js,我有关系: (Track)--M:1-->(TrackChannel)(UserChannel)解决方案: findById: function(id) { return db.channel.findOne({ logging: true, include: [ { model: db.track, attributes: ['id', 'name','artist_name' ,'album_na
findById: function(id) {
return db.channel.findOne({
logging: true,
include: [
{ model: db.track, attributes: ['id', 'name','artist_name' ,'album_name'], as: 'track'},
{ model: db.track, attributes: ['id', 'name','artist_name' ,'album_name'], as: 'tracks', paranoid: true, required: false}
],
where: {
id: id
}
});
},
我想这会帮助别人,所以给他们另一个选择 您可以将
nest:true
与sequelize提供的raw:true
属性一起使用
结果:
之前:
{
id: 1,
createdBy: 1,
'Section.id': 1,
'Section.name': 'Breakfast',
}
之后:
{
id: 1,
createdBy: 1,
Section: {
id: 1,
name: ''
}
}
-这是将
轨迹
获取为数组的解决方案。但是如何获取相关跟踪如果您完全被sequelize
卡住,则有一个,它完全支持存储库模式,如中所示,它可以与sequelize代码愉快地共存;)谢谢,我来看看。但它确实帮助我清理代码:)您需要设置nest:true
{
"id": "ce183d0a-e702-49a3-83b5-2912bbcf5283",
"current_counter": 0,
"track_counter": 0,
"track_id": null,
"createdAt": "21:26:56.487217",
"updatedAt": "21:26:56.487217",
"tracks.id": null,
"tracks.name": null,
"tracks.artist_name": null,
"tracks.album_name": null,
"tracks.trackChannel.id": null,
"tracks.trackChannel.channel_id": null,
"tracks.trackChannel.createdAt": null,
"tracks.trackChannel.updatedAt": null,
"tracks.trackChannel.track_id": null
}
findById: function(id) {
return db.channel.findOne({
logging: true,
include: [
{ model: db.track, attributes: ['id', 'name','artist_name' ,'album_name'], as: 'track'},
{ model: db.track, attributes: ['id', 'name','artist_name' ,'album_name'], as: 'tracks', paranoid: true, required: false}
],
where: {
id: id
}
});
},
{
id: 1,
createdBy: 1,
'Section.id': 1,
'Section.name': 'Breakfast',
}
{
id: 1,
createdBy: 1,
Section: {
id: 1,
name: ''
}
}