Express Sequelize-通过匹配所有标记筛选FindAll

Express Sequelize-通过匹配所有标记筛选FindAll,express,sequelize.js,Express,Sequelize.js,对上述端点的Get请求应仅返回包含所有提供标记的记录(foo,bar) 我当前的尝试是返回与任何给定标记匹配的任何记录 /assets/?tags[]=foo&tags[]=bar 如何修改过滤器以返回所有标记匹配的记录?如果您的DBMS支持ALL操作符,则可以尝试Op.ALL操作符而不是Op.in 另一种解决方案是结合这些条件 const { tags } = req.query; res.send( await Asset.findAll({ wher

对上述端点的Get请求应仅返回包含所有提供标记的记录(
foo
bar

我当前的尝试是返回与任何给定标记匹配的任何记录

/assets/?tags[]=foo&tags[]=bar

如何修改过滤器以返回所有标记匹配的记录?

如果您的DBMS支持
ALL
操作符,则可以尝试
Op.ALL
操作符而不是
Op.in

另一种解决方案是结合这些条件

const { tags } = req.query;

res.send(
      await Asset.findAll({
        where: whereOptions,
        include: [
          { model: AssetMime },
          {
            model: Tag,
            as: 'tags',
            where: {
              title: {
                [Op.in]: tags,
              },
            },
          },
        ],
      })
    );

如果DBMS支持
all
运算符,则可以尝试使用
Op.all
运算符而不是
Op.in

另一种解决方案是结合这些条件

const { tags } = req.query;

res.send(
      await Asset.findAll({
        where: whereOptions,
        include: [
          { model: AssetMime },
          {
            model: Tag,
            as: 'tags',
            where: {
              title: {
                [Op.in]: tags,
              },
            },
          },
        ],
      })
    );

我确实试过了,但收到了SQL错误,我猜所有不支持的添加替代解决方案您能扩展一下您的答案吗?我刚刚阅读了Op.and,不知道如何在我的案例中实现让我把它转换成Typescript,看看它是什么意思?如果您有几个值,会发生什么情况?我确实尝试过,但收到了SQL错误,我猜所有不支持的都是添加的替代解决方案。您能稍微扩展一下您的答案吗?我刚刚阅读了Op.and,不知道如何在我的案例中实现让我把它转换成Typescript,看看它是什么意思?如果有几个值,会发生什么?