У меня есть запрос на продолжение из нескольких таблиц, соединенных вместе. Мне нужно сгруппировать их по вложенной модели include
но запрос sequelize каждый раз выдает первичный ключ, даже если я упоминаю атрибуты как: attributes:[]
.
Однако attributes:[]
работает для моделей вложенных include
.
Вы можете исключить любые атрибуты, передав массив exclude
в параметр attributes
:
MyModel.findAll({
attributes: {exclude: ['some_field']}
});
Я хочу добавить, что вы можете явно перечислять нужные вам атрибуты и работать на вложенных внутренних соединениях следующим образом:
const my_model = await MyModel.findById(id, {
include: [
{
model: AnotherModel,
attributes: [ 'displayName', 'email' ] // only these attributes returned
},
{ model: YetAnotherModel,
include: [{
model: AnotherModel,
attributes: [ 'id', 'displayName', 'email' ]
}]
}
]
})
Ваш возвращенный объект должен выглядеть так:
{
// ...MyModel attributes
,
AnotherModel: {
displayName: '...',
email: '...',
},
YetAnotherModel: {
// ...YetAnotherModel attributes
,
AnotherModel: {
id: '...',
displayName: '...',
email: '...',
}
}
}
findAll
.