node.js sequelize association,include on condition

时间:2013-05-31 20:11:32

标签: node.js orm sequelize.js

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

例如,我有UsersModel,PostsModel和UserVotesModel。

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

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

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

2 个答案:

答案 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
  }]
})