我正在使用MySQL数据库:
models.modelA.findAll({
attributes: [
['modelA.id','id']
],
raw: true,
include:
[
{
model: models.modelB,
required: true
}
]
}).then(function (tenants) {
});
尽管如此,我只选择了id
,Sequelize正在从相关表中检索所有属性,因此我获得了{id
,...此处的所有属性}
我怎么能阻止这个?有时我想只选择2/3列,而Sequelize总是选择所有不高效的列。
答案 0 :(得分:4)
您可以执行以下操作
models.modelA.findAll({
attributes: [
'id'
],
raw: true,
include:
[
{
model: models.modelB,
attributes: ['fieldName1', 'fieldName2'], // Add column names here inside attributes array.
required: true
}
]
}).then(function (tenants) {
});
答案 1 :(得分:0)
您可以尝试发送空数组作为属性来排除它们:
models.modelA.findAll({
attributes: [
['modelA.id','id']
],
raw: true,
include:
[
{
model: models.modelB,
attributes: [],
required: true
}
]
}).then(function (tenants) {
});