Sequelize:按关联过滤,不包括关联数据

问题描述 投票:0回答:1

我见过的所有示例,包括文档都表明通过关联过滤应该使用以下语法

[contrived exampled]
User.findAndCountAll({
    include: [
        {
            model: models.Task,
            as: 'tasks',
            where: {
                status: 'complete'
            },
        },
    ],
})

但这种风格将包括已完成的任务。如果您想通过关联过滤而不包括相关记录,该怎么办?我不是在谈论事后使用toJSON。但在查询级别。

sequelize.js
1个回答
1
投票

a)如果要查看具有至少一个任务的用户,可以删除(可选)WHERE子句。 b)如果不需要,可以禁止任务属性(如下所示)。

   User.findAndCountAll({
       include: [
          {
          model: models.Task,
          required : true,      // INNER JOIN....
          attributes: []        // no task fields shown in result...
          }
       ]
   );
© www.soinside.com 2019 - 2024. All rights reserved.