Orm 续集里有什么方法

Orm 续集里有什么方法,orm,sequelize.js,Orm,Sequelize.js,Sequelize让我想起了Laravel中的雄辩库,但我找不到任何类似于方法的东西,该方法允许使用关联表过滤记录 比如说,我需要选择ID=1的组中的所有用户,然后我可以使用下面的查询,但是我必须从结果中提取用户 let group = group.findOne({ include: [{ as: 'users', model: schema.users }], where: { id: groupId } }) let users = group.u

Sequelize让我想起了Laravel中的雄辩库,但我找不到任何类似于方法的东西,该方法允许使用关联表过滤记录

比如说,我需要选择ID=1的组中的所有用户,然后我可以使用下面的查询,但是我必须从结果中提取用户

let group = group.findOne({
  include: [{
    as: 'users',
    model: schema.users
  }],
  where: {
    id: groupId
  }
})

let users = group.users;
有没有一种像Wherehads这样的方法,我可以用来只为用户创建一个查询,然后使用与组的关联来过滤他们

let users = group.findAll({
  whereHas: [{
    as: 'groups',
    model: schema.groups,
    where: {
      id: groupId      // something like this, group is used for filtering only
    }
  }]
})

我遇到了同样的问题,我的解决方案是include选项中的
required:true
。如果要查找加入组的所有用户,可以使用以下代码:

let users = users.findAll({
  include: [{
    as: 'groups',
    model: schema.groups,
    required:true,
    where: {
      id: groupId      
    }
  }],
})

我这边不行。它仍然过滤id上不匹配的所有行