gpt4 book ai didi

orm - Sequelize 中的 WhereHas 方法

转载 作者:行者123 更新时间:2023-12-03 22:18:42 25 4
gpt4 key购买 nike

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

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

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

let users = group.users;

有没有像 WhereHas 这样的方法可以用来仅为用户创建查询,然后使用与组的关联来过滤它们?
let users = group.findAll({
whereHas: [{
as: 'groups',
model: schema.groups,
where: {
id: groupId // something like this, group is used for filtering only
}
}]
})

最佳答案

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

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

关于orm - Sequelize 中的 WhereHas 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51734919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com