я Track
и Artist
моделей определены, с объединением следующим образом:Sequelize включает ссылки строки таблицы в результате при использовании включает
db.Track.belongsToMany(db.Artist, {through: 'TracksArtists'});
db.Artist.belongsToMany(db.Track, {through: 'TracksArtists'});
Я хочу, чтобы искать треки и включать Artist.name в результатах:
db.Track
findAll({
attributes: ['title','year'],
where: { title: { like: '%' + string + '%' } },
include: [{model: db.Artist, attributes: ['name']}]
})
.complete(function(err, tracks){ /*...*/});
Однако Sequelize также включает в себя ряд от TracksArtists справочной таблице результатов:
[{"title":"Nightcall","year":2010,"Artists":[{"name":"Kavinsky","TracksArtists":{"createdAt":"2015-01-13T18:41:31.850Z","updatedAt":"2015-01-13T18:41:31.850Z","ArtistId":1,"TrackId":1}}]}]
который не нужен. Как я могу заставить его не возвращать информацию из TracksArtists, вместо того, чтобы удалять ее самостоятельно?
Try 'включают : [{model: db.Artist, attributes: ['name'], через: {attributes: []}}] ' –
Работал, как шарм, спасибо. – user1205255