Sequelize.js Sequelize查询包含和逻辑

Sequelize.js Sequelize查询包含和逻辑,sequelize.js,Sequelize.js,我有三个表格:Article、Tag和ArticleTag。一篇文章可以有多个标签,一个标签可以通过ArticleTag属于多篇文章标记具有名称属性 我想查询所有带有标签tag1和(tag2或tag3)和(tag4或tag5)的文章。 以下查询不起作用 Article.findAll({ where: {}, include: [ { model: Tag, where: { [Op

我有三个表格:
Article
Tag
ArticleTag
。一篇文章可以有多个标签,一个标签可以通过
ArticleTag
属于多篇文章<代码>标记具有
名称
属性

我想查询所有带有标签
tag1
和(
tag2
tag3
)和(
tag4
tag5
)的文章。 以下查询不起作用

Article.findAll({
    where: {},
    include: [
        { 
            model: Tag,
            where: {
                [Op.and]: [
                  { name: 'tag1' },
                  { name: { [Op.or]: ['tag2', 'tag3'] } },
                  { name: { [Op.or]: ['tag4', 'tag5'] } },
                ] 
            }
        }
    ]
})

我认为
拥有
分组将获得预期的结果(请阅读下面代码中的注释):

对于更新的问题,只需在其中更改或阻止:

[Op.and]: [
    { name: 'tag1' },
    { name: { [Op.or]: ['tag2', 'tag3'] } },
    { name: { [Op.or]: ['tag4', 'tag5'] } },
] 

谢谢你的回答,它回答了我的问题,但没有解决我的问题。也许我需要更新我的问题。有一个
过滤器,它只接受带有两个不同标签的数据。在更新问题中,似乎很难确定这个数字(2)。
[Op.and]: [
    { name: 'tag1' },
    { name: { [Op.or]: ['tag2', 'tag3'] } },
    { name: { [Op.or]: ['tag4', 'tag5'] } },
]