node.js - Sequelize 属性不起作用

标签 node.js sequelize.js

当我进行查询时,如下所示。

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 的查询语法要求您传入 ModelModel 数组或对象定义数组(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/

相关文章:

mysql - Node.js:数据库查询+多部分表单数据锁定

node.js - "defineCall is not a function"。在 Node.JS 中使用 sequelize

node.js - 相关的 Graphql 对象给出未定义

MySql 在选择记录时更改日期

node.js - Express默认使用集群吗?

angularjs - Express.js 和 Angular.js 项目的文件夹结构

用于快速路由器 url 的正则表达式以匹配以/public/开头的路径

Express中路由匹配的正则表达式

javascript - ES6 : Using a class as a module

sql-server - 按字段组合序列化过滤器