从序列查询中排除主键属性

Ami*_*mit 5 mysql node.js sequelize.js

我有一个从多个内部连接在一起的表的查询查询。我需要在嵌套include模型上对它们进行分组,但是即使我将属性提到为,sequelize查询每次也会抛出主键attributes:[]

但是attributes:[]适用于嵌套include模型。

mcr*_*n18 8

您可以通过将exclude数组传递给attributes选项来排除任何属性:

MyModel.findAll({
  attributes: {exclude: ['some_field']}
});
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下不适用于主键。我有一个类似的查询,我正在尝试实现,并且在排除数组中列出主键没有效果。 (3认同)

Bar*_*Zak 5

对于包含的型号使用attributes: ['prop_name']

记住include/exclude不会影响嵌套表的使用through: { attributes:[]}

Model.addScope('scope_name', {
      attributes: ['id', 'name'],
      include: [
        {
          model: models.role,
          as: 'roles',
          attributes: ['name'],
          through: {
            attributes: []
          }
        }
      ]
Run Code Online (Sandbox Code Playgroud)

更多详细信息可以在这里找到:https://github.com/sequelize/sequelize/issues/4074#issuecomment-153054311