是否可以在findAll查询的include数组中传递条件?
例如,我有UsersModel,PostsModel和UserVotesModel。
用户可以对帖子进行投票。
对于已登录的用户,我想查询帖子并仅包含当前用户的投票。我无法使用Sequelize的include param来做到这一点。 Sequelize在postId上加入帖子和UserVotes,但对于这个特定的查询,我想加入postId和UserId。
任何想法如何解决这个问题?
答案 0 :(得分:0)
我刚检查了Sequelize的源代码。这是不可能的!
答案 1 :(得分:0)
如果您包含一个带有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
}]
})