Sequelize - 通过匹配所有标签来过滤 FindAll

2024-02-14

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

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

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

const { tags } = req.query;

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

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


你可以试试Op.all运算符而不是op.in如果您的 DBMS 支持ALL操作员。

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

const where = {}
if (tags && tags.length) {
  where[Op.and] = tags.map(x => ({ title: x })
}

await Asset.findAll({
        where: whereOptions,
        include: [
          { model: AssetMime },
          {
            model: Tag,
            as: 'tags',
            where: where,
          },
        ],
      })

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sequelize - 通过匹配所有标签来过滤 FindAll 的相关文章

随机推荐

  • NPM 包中 src 和 dist 文件夹的作用

    我在用着矩形 https github com mgonto restangular用于 HTTP 请求 我想使用 customPATCH 方法 我可以在 Restangular src 目录中看到它here https github co
  • Android setTextSize TextView移动基线并截断文本高度

    我正在尝试使用背景图像调整 TextView 的大小 我有一个扩展 TextView 类的类 并按如下方式添加 MyCustomTextView tv2 new MyCustomTextView this RelativeLayout La
  • 在 DataGridView 中编辑文本框单元格,就像它是普通文本框一样(按下箭头时不会跳转)

    我在 DataGridView 中有 多行 自动换行 文本框列 如果能够像普通文本框一样编辑它们 那就太好了 当我按下向下箭头时 我希望插入符在文本框中向下一行 我不希望它像通常那样跳到下一行 同样地 我希望按 Enter 键在文本框单元格
  • 如何在数据表JavaScript中制作垂直标题列表?

    如何在数据表中设置垂直标题列 It should be as follows and working as datatble 您正在寻找数学中称为矩阵转置的东西 要获得矩阵 表的转置 请将行转换为列
  • Android、Google Drive:Google 同意屏幕冻结

    我已将我的应用程序升级到 Google Drive REST API 及其 Java 包装器 如下所述 https developers google com drive android deprecation https develope
  • 在没有布局管理器的情况下将 JScrollPane 添加到 JPanel

    在开始之前 我知道不使用布局管理器是一个坏主意 通常我确实使用布局管理器 但是 我还让所有组件根据窗口的大小自动重新调整大小和重新定位 此外 我正在开发的程序在其整个生命周期中仅打算在一台机器上运行 请不要仅仅因为缺少布局管理器而对我投反对
  • 将项目数组拆分为 N 个数组

    我想将数字数组分成N组 必须从larger to smaller groups 例如 在下面的代码中 分割一个数组12数入5数组 结果应该从大 组 到小均匀分割 source 1 2 3 4 5 6 7 8 9 10 11 12 outpu
  • C/C++ 大数计算

    我正在尝试在 C 程序中计算以下数字 result 3 pow 2 500000000 2 1000000000 2 的幂太大 无法正确处理 gt 我的印象是 我可以使用模数将计算分成多个步骤 以减少结果大小 有人有这样做的策略吗 还有其他
  • 将 WP 8.0 应用程序定位到 WP8.1 应用程序?

    我安装了 Visual Studio 2013 含更新 2 我正在 VS2012 中为 Windows Phone 8 0 开发我的项目 现在我决定Upgrade它到 Windows Phone 8 1 应用程序 所以我按照说明进行操作Ta
  • 选择选项卡时更改 div 高度

    我有一个选项卡式内容 有 4 个选项卡 每个选项卡中都有两个 div 构成边框设计 我遇到的问题是 当选择它们所在的选项卡时 我不知道如何对 div 进行动画处理以更改高度 我有一个小提琴供参考 http jsfiddle net jw6t
  • 如何将 CGRect 的大小增加一定的百分比值?

    如何将 CGRect 的大小增加一定的百分比值 我应该使用某种形式的CGRectInset去做吧 Example 假设我有一个 CGRect 10 10 110 110 我想将其大小增加 20 保留相同的中心点 0 0 120 120 您可
  • Android Preview M:授予权限后重新创建活动

    我使用 Preview M 并在其上测试我的应用程序 尤其是 将文件保存到外部存储 部分 在下载 保存过程开始之前 我请求 Manifest permission WRITE EXTERNAL STORAGE 开发者页面上描述的权限 htt
  • 从 Maven 部署到 Nexus 出现错误:ReasonPhrase:Forbidden

    http numberformat wordpress com 2011 05 18 nexus repository http numberformat wordpress com 2011 05 18 nexus repository
  • NetworkStream.Write 与 Socket.Send

    我有一个 C 应用程序 我使用自定义 FTP 库 现在我使用 Socket Send 发送数据 但我想知道使用套接字启动 NetworkStream 并使用 NetworkStream Write 是否会更好 使用其中一种比另一种有什么优势
  • Haskell 中的 HTTP POST 内容

    我正在尝试将一些数据发布到 Haskell 中的服务器 但服务器端为空 我正在使用 Network HTTP 库来处理请求 module Main main where import Network URI URI parseURI uri
  • Postgres `gin_trgm_ops` 索引未被使用

    我试图speed up https stackoverflow com questions 56483600 composite jsonb array query in postgresPostgres 中的一些文本匹配 使用pg trg
  • 如何在 dask/distributed 中存储工作线程局部变量

    使用dask 0 15 0 分布式1 17 1 我想记住每个工作人员的一些事情 比如访问谷歌云存储的客户端 因为实例化它是昂贵的 我宁愿将其存储在某种工作者属性中 执行此操作的规范方法是什么 或者全局变量是正确的选择吗 关于工人 您可以通过
  • jquery ajax 调用不起作用?!是firefox还是xss问题?

    我的问题是 在 Firefox 中我没有得到任何回应 在 ie 中它工作得很好 我想要对本地脚本进行 ajax 调用 以纯文本或其他方式获取一些信息 但这行不通 我认为跨脚本此时应该不是问题 或者 JavaScript 代码很简单 var
  • 如何在程序开始执行时设置断点

    如何在加载任何链接的 DLL 之前停止程序 我尝试过设置LoadLibraryExW函数在Break At Function调试选项 它会在该函数处停止 但在此之前 我在 Visual Studio 输出窗口中有以下内容 test exe
  • Sequelize - 通过匹配所有标签来过滤 FindAll

    assets tags foo tags bar 对上述端点的获取请求应仅返回包含所有提供的标签的记录 foo bar 我当前的尝试是返回与任何给定标签匹配的任何记录 const tags req query res send await