2016-05-09 7 views
1

Sequelizeはデータ関係を可能にしますが、関係から構成されるクエリ結果を返す方法があるかどうかはわかりません。私は2つのクエリとしてこれを行うことができましたが、Sequelizeがこれを提供するかどうか不思議です。例えばプレイリストとPlaylistEntry:私は(擬似コード)を期待されるだろう何結果を入れ子にして入れ子にしましたか?

Playlist: sequelize.define('playlist', { 
     name: Sequelize.STRING, 
     description: Sequelize.STRING 
    }),  

    PlaylistEntry: sequelize.define('playlist_entry', { 
     playlist: Sequelize.INTEGER 
     //track: Sequelize.INTEGER 
    }) 

    PlaylistEntry.belongsTo(
    Playlist, 
    { as: 'Playlist', foreignKey: { name: 'fk_playlist' }}); 

問合せ:

Playlist.find(where: {id: playlistId}, nestedResult: true); 

結果:

[{ 
    id: 123, 
    name: 'abc' 
    playlistEntries: [{ 
     id: 321, 
     track: 431 
    }] 
}] 

答えて

3
Playlist.find({ 
    where: {}, 
    include: [ 
    {model: PlaylistEntry} //this should be PlaylistEntry model 
    ] 
}) 

http://docs.sequelizejs.com/en/latest/docs/models-usage/#eager-loading

+0

ありがとう、次のエラーが発生しましたが、 'エラー:playlist_entryがプレイリストに関連付けられていません!'私は何を見ているべきであるか分からない? –

+1

'Playlist.hasMany(PlaylistEntry);を追加します。 –

+1

AntonDrukhはそうです。両方の方法で関連付けを定義する必要があります。適切なモデルでhasManyとbelongsTo – yBrodsky

関連する問題