Sequelize属性不起作用

时间:2017-10-30 07:03:19

标签: node.js sequelize.js

当我提出查询时如下所示。

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中有很多字段时,它真的很糟糕。

我做错了吗?

抱歉我的英语不好。

1 个答案:

答案 0 :(得分:2)

Sequelize的查询语法要求您传入ModelModel数组,或者对象定义数组(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,
  }
);