是否可以在 findAll 查询的包含数组中传递条件?
例如,我有 UsersModel、PostsModel 和 UserVotesModel。
用户可以对帖子进行投票。
对于登录用户,我想查询帖子并仅包括当前用户的投票。我无法使用 Sequelize 的包含参数来做到这一点。Sequelize 在 postId 上加入帖子和 UserVotes,但对于这个特定的查询,我想在 postId 和 UserId 上加入。
任何想法如何解决这个问题?
是否可以在 findAll 查询的包含数组中传递条件?
例如,我有 UsersModel、PostsModel 和 UserVotesModel。
用户可以对帖子进行投票。
对于登录用户,我想查询帖子并仅包括当前用户的投票。我无法使用 Sequelize 的包含参数来做到这一点。Sequelize 在 postId 上加入帖子和 UserVotes,但对于这个特定的查询,我想在 postId 和 UserId 上加入。
任何想法如何解决这个问题?
如果您包含一个带有 where 条件的模型(默认需要为 true),但如果您将其标记为 false 到 LEFT OUTER JOIN 关联
Post.findAll({
where: {
user_id: current_user_id
},
include: [
{
model: UserVote,
where: {
'user_id': current_user_id
},
required: false
}]
})
我刚刚检查了 Sequelize 源代码。这是不可能的!