Reputation: 12072
Any idea how to use an include with attributes (when you need to include only specific fields of the included table) with sequelize?
Currently I have this (but it doesn't work as expected):
var attributes = ['id', 'name', 'bar.version', ['bar.last_modified', 'changed']];
foo.findAll({
where : where,
attributes : attributes,
include : [bar]
}).success(function (result) { ...
Upvotes: 98
Views: 170756
Reputation: 645
Course.findAll({where: {
status:responseCode.STATUS_ACTIVE
}, attributes:['id','course_title','course_slug','age_group','image','class_duration','no_of_classes','is_course_upcoming'],
order:[['is_sorting','ASC']],
include:{model:Section,attributes:['id','title','course_id','start_date','end_date']},
}).then(course_detail =>{
result(null,course_detail);
}).catch(err =>{
console.log(err)
});
Upvotes: 1
Reputation: 9
Use the select without hyphen (-) only blank spaces like this.
Model.find().select('attr1 attr2 attr3')
Upvotes: -2
Reputation: 536
We can do something like that for exclude or include specific attribute with sequelize in Node.js.
Payment.findAll({
where: {
DairyId: req.query.dairyid
},
attributes: {
exclude: ['createdAt', 'updatedAt']
},
include: {
model: Customer,
attributes:['customerName', 'phoneNumber']
}
})
Upvotes: 20
Reputation: 28788
Something like this should work
foo.findAll({
where : where,
attributes : attributes,
include : [{ model: bar, attributes: attributes}]
}).success(function (result) {
Upvotes: 160