当我提出查询时如下所示。
models.A.findAndCountAll(
{
include: [
models: models.B,
as: 'C',
attribute: ['a']
],
order
offset
limit
}
)
a hasOne B as' C' B属于A
有' a'' b'' c' B和我的字段只是想要检索' a'。 所以我添加了属性选项。
但是当我执行这个查询时,我得到了B中定义的所有字段。 当B中有很多字段时,它真的很糟糕。
我做错了吗?
抱歉我的英语不好。
答案 0 :(得分:2)
Sequelize的查询语法要求您传入Model
和Model
数组,或者对象定义数组(as,attributes等)。您对数组使用方括号([]
)但将值视为对象,因此不包含属性定义。使用花括号({}
)来定义要包含的Model
属性。模型的对象键应为model
,而不是示例中的models
,并且您缺少最后一个参数的逗号。
models.A.findAndCountAll(
{
include: [
{ // <-- brace here
model: models.B, // "models" key should be "model"
as: 'C',
attributes: ['a']
}, // <-- brace here
],
order,
offset,
limit,
}
);