首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并在连续化NodeJS中多次在同一字段上建立联接表的条件?

并在连续化NodeJS中多次在同一字段上建立联接表的条件?
EN

Stack Overflow用户
提问于 2019-12-16 19:16:35
回答 1查看 241关注 0票数 1

我有一张名叫用户的桌子。一个用户可以出现在多个电子邮件组上。

用户表

代码语言:javascript
复制
id, name
代码语言:javascript
复制
1, Sudhir Roy
代码语言:javascript
复制
2, Rahul Singh                                                      

电子邮件组表

代码语言:javascript
复制
id, emailType, userID
代码语言:javascript
复制
1, Promotional, 1
代码语言:javascript
复制
2, Advertisement, 2
代码语言:javascript
复制
3, Advertisement, 1                                                     

需要让所有的用户基于电子邮件类型。(电子邮件类型是动态的,并以“促销”、“广告”等数组形式发送。

如何基于emailGroup找到用户。

  • "Advertisement“从用户table
  • "Advertisement",返回1,2从用户表返回1。

我试着使用Op.and和Op.in。两者都不起作用。

这是我的代码样本。

代码语言:javascript
复制
const user = User.findAll({
                where: {
                       "$emailGroup.emailType$": {
                               [Op.in]: emailGroup // Array from client
                       },
                },
                include: { 
                       model: EmailGroup
                }
             })

当电子邮件组数组是单一的,但当我们试图找到多个电子邮件组时,它工作得很好。

EN

回答 1

Stack Overflow用户

发布于 2020-02-25 10:18:54

还可以将where子句添加到include对象中。

由此产生的findAll将变成:

代码语言:javascript
复制
  const user = User.findAll({
    include: [
      {
        model: EmailGroup,
        where: {
          emailType$: {
            [Op.in]: emailGroup, // Array from client
          },
        },
      },
    ],
  });

如docs:https://sequelize.org/v5/manual/querying.html#relations---associations中所示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59362976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档