我见过的所有示例,包括文档都表明通过关联过滤应该使用以下语法
[contrived exampled]
User.findAndCountAll({
include: [
{
model: models.Task,
as: 'tasks',
where: {
status: 'complete'
},
},
],
})
但这种风格将包括已完成的任务。如果您想通过关联过滤而不包括相关记录,该怎么办?我不是在谈论事后使用toJSON
。但在查询级别。
a)如果要查看具有至少一个任务的用户,可以删除(可选)WHERE子句。 b)如果不需要,可以禁止任务属性(如下所示)。
User.findAndCountAll({
include: [
{
model: models.Task,
required : true, // INNER JOIN....
attributes: [] // no task fields shown in result...
}
]
);