6

是否可以在 findAll 查询的包含数组中传递条件?

例如,我有 UsersModel、PostsModel 和 UserVotesModel。

用户可以对帖子进行投票。

对于登录用户,我想查询帖子并仅包括当前用户的投票。我无法使用 Sequelize 的包含参数来做到这一点。Sequelize 在 postId 上加入帖子和 UserVotes,但对于这个特定的查询,我想在 postId 和 UserId 上加入。

任何想法如何解决这个问题?

4

2 回答 2

2

如果您包含一个带有 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
  }]
})
于 2018-11-22T12:52:17.330 回答
1

我刚刚检查了 Sequelize 源代码。这是不可能的!

于 2013-06-01T14:39:00.007 回答