Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sequelize包含嵌套对象的数组-node.js_Node.js_Postgresql_Sequelize.js - Fatal编程技术网

Sequelize包含嵌套对象的数组-node.js

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

我有关系:

(Track)--M:1-->(TrackChannel)(UserChannel)解决方案:

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: ''
      }
}