node.js - 在 Sequelize NodeJS 中多次在同一字段上连接表的条件?
问题描述
我有一张名为“用户”的表。一个用户可以出现在多个电子邮件组中。
用户表
ID、名称
1、Sudhir Roy
2、Rahul Singh
电子邮件组表
ID、电子邮件类型、用户 ID
1、促销、1
2、广告、2
3、广告、1
需要根据电子邮件类型获取所有用户。(电子邮件类型是动态的,以数组形式发送,如 ["Promotional", "Advertisement"]
我们如何根据 emailGroup 找到用户。
- ["Advertisement"] 从用户表返回 [1, 2]
- ["Advertisement", "Promotional"] 从用户表返回 [1]。
我尝试使用 [Op.and] 和 [Op.in]。两者都不起作用。
这是我的示例代码。
const user = User.findAll({
where: {
"$emailGroup.emailType$": {
[Op.in]: emailGroup // Array from client
},
},
include: {
model: EmailGroup
}
})
当电子邮件组数组是单个时它工作得很好,但当我们尝试查找多个电子邮件组时它不起作用。
解决方案
您还可以将 where 子句添加到包含对象。
结果 findAll 将变为:
const user = User.findAll({
include: [
{
model: EmailGroup,
where: {
emailType$: {
[Op.in]: emailGroup, // Array from client
},
},
},
],
});
如文档中所示:https ://sequelize.org/v5/manual/querying.html#relations---associations
推荐阅读
- java - 我将项目从 spring-hibernate3 迁移到 4。但它显示错误“创建 ServletContext 中定义的名称为 'sessionFactory' 的 bean 时出错”
- javascript - HTML 输入有效性初始状态
- unit-testing - 如何在单元测试中设置 ValidateInlineMaps 来测试 AutoMapper 的映射
- node.js - 如何使用 AWS SDK v3 将流上传到 S3
- flutter - 当我按下后退按钮或移除键盘时,文本字段中的文本消失
- solana - `solana deploy` 和 `solana program deploy` 之间的区别
- xml - 使用 ansible xml 模块修改 xml 中的数据
- flutter - 如何修复错误代码“类型'null'不是'map string dynamic'类型的子类型”
- xaml - 从医学页面的条目添加到主页的另一个集合视图后如何添加集合视图以及如何在视图模型中显示 DisplayAlert?
- kubernetes - 通过源 IP 地址保护 Kiali(在 Istio 中)