Orm 续集里有什么方法
Sequelize让我想起了Laravel中的雄辩库,但我找不到任何类似于方法的东西,该方法允许使用关联表过滤记录 比如说,我需要选择ID=1的组中的所有用户,然后我可以使用下面的查询,但是我必须从结果中提取用户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
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上不匹配的所有行