私のモデルでは、User
whichがありますbelongsTo({ model: Company, as: 'company' })
(逆に Company
hasMany({ model: User, as: 'members' })
)
次のようにクエリを作成しました
const query = {
where: { onboardingState: 'pending' },
include: [
{
model: Company,
where: { suspendedAt: { [Op.eq]: null } }
}
]
}
const users = await User.findAll(query)
ユーザーが関連する会社を持っている場合、これは正常に機能します。ただし、ユーザーに会社が関連付けられていないエッジ ケース (管理者ユーザー) があり、その場合、findAll
クエリは返されます。[]
company.suspendedAt == null
会社が存在する場合にのみ要求し、会社が存在しない場合は会社の where 句を無視するようにクエリを構成するにはどうすればよいですか?