当我进行查询时,如下所示。
models.A.findAndCountAll(
{
include: [
models: models.B,
as: 'C',
attribute: ['a']
],
order
offset
limit
}
)
A hasOne B 作为'C'
B属于A
B中有“a”、“b”、“c”字段,我只想检索“a”。
所以我添加了属性选项。
但是当我执行这个查询时,我得到了 B 中定义的所有字段。
B里面有很多字段的时候真的很可怕。
我做错什么了吗?
对不起,我的英语不好。
最佳答案
Sequelize 的查询语法要求您传入 Model
和 Model
数组或对象定义数组(as、属性等)。您对数组使用方括号 ( []
),但将值视为对象,因此不包括属性定义。使用花括号 ( {}
) 定义要包含的 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,
}
);
关于node.js - Sequelize 属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47009651/