查询至少有 1 个关联,但返回全部

2024-02-03

我创建了这条记录,您可以看到它有 2 个标签 - tag1 和 tag2

{
  "id": "d87de1d9-b048-4867-92fb-a84dca59c87e",
  "name": "Test Name",
  "tags": [
    {
      "id": "fa0ca8fd-eff4-4e58-8bb0-a1ef726f01d4",
      "name": "tag1",
      "organizationId": "d87de1d9-b048-4867-92fb-a84dca59c87e",
      "updatedAt": "2018-12-05T18:53:56.867Z",
      "createdAt": "2018-12-05T18:53:56.867Z"
    },
    {
      "id": "66e758af-9907-4278-8c4f-f8fb2bf9aea9",
      "name": "tag2",
      "organizationId": "d87de1d9-b048-4867-92fb-a84dca59c87e",
      "updatedAt": "2018-12-05T18:53:56.867Z",
      "createdAt": "2018-12-05T18:53:56.867Z"
    }
  ],
  "updatedAt": "2018-12-05T18:53:56.860Z",
  "createdAt": "2018-12-05T18:53:56.860Z"
}

我想编写一个查询来查找包含以下内容的组织tag1并返回整个组织,包括所有标签。

我目前有这个查询,它只返回与查询匹配的标签记录,而不是所有标签。

db.organization.findAll({
  include: {
    model: db.tag,
    where: { name: 'tag1' }
  }
})

它正在产生这个结果

[
  {
    "id": "3d03d74e-82ec-485e-aa29-abe9e8b0f0e9",
    "name": "Test Name",
    "createdAt": "2018-12-05T19:29:40.685Z",
    "updatedAt": "2018-12-05T19:29:40.685Z",
    "tags": [
      {
        "id": "75dc9cd2-5e20-4aa6-b86e-cbaa2c896d57",
        "name": "tag1", <-- NOTE THAT ONLY TAG1 IS IN THE RESULTS EVEN THOUGH THERE SHOULD BE ANOTHER TAG OBJECT RETURNED
        "createdAt": "2018-12-05T19:29:40.694Z",
        "updatedAt": "2018-12-05T19:29:40.694Z",
        "organizationId": "3d03d74e-82ec-485e-aa29-abe9e8b0f0e9"
      }
    ]
  }
]

我如何编写查询来执行此操作?


我搜索了很多关于这个主题的内容,我认为最有效的方法(在这种情况下)是建立一个基本的过滤关联和一个接收数据的关联

协会文件

// This is for filtering
organization.hasMany(tag, {
  foreignKey: 'organizationId',
});

// This one is for receiving data after filtering
organization.hasMany(tag, {
  foreignKey: 'organizationId',
  as: 'tags',
});

控制器

const results = await db.organization.findAll({
  include: [{
    model: db.tag,
    where: { name: 'tag1' },
    attributes: [], // remove 'Tag' property from results
  }, {
    model: db.tag,
    as: 'tags',
  }],
});

console.log(results);

The console.log(results);将返回:

[
  {
    "id": "...",
    "name": "Organization Test Name",
    "createdAt": "...",
    "updatedAt": "...",
    // "Tag": [ // This property was removed by 'attributes: []'
    //   {
    //     "id": "...",
    //     "name": "tag1",
    //     "organizationId": "..."
    //     "createdAt": "...",
    //     "updatedAt": "...",
    //   },
    // ],
    "tags": [
      {
        "id": "...",
        "name": "tag1",
        "organizationId": "..."
        "createdAt": "...",
        "updatedAt": "...",
      },
      {
        "id": "...",
        "name": "tag1",
        "organizationId": "..."
        "createdAt": "...",
        "updatedAt": "...",
      }
    ]
  }
]

来自 GitHub 的一些资源:无法从sequelize中的select语句中排除关联的字段#3664 https://github.com/sequelize/sequelize/issues/8754

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

查询至少有 1 个关联,但返回全部 的相关文章

随机推荐

  • 在seaborn中绘制多个箱线图

    我想在 pandas 中使用 seaborn 绘制箱线图 因为这是一种更好的可视化数据的方式 但我不太熟悉它 我有三个不同指标的数据帧 我想比较不同的指标 我将循环遍历文件路径来访问它们 for path in paths df pd re
  • 参数数量未知的 C++ 函数指针

    我需要一些关于 C 的帮助 拜托 我正在为一个基于文本的小型游戏编写命令解析器 但遇到了一些问题 解析器应该读取并解析玩家输入的命令 最明显 最直接的解决方案可能是这样的 用伪代码编写 command lt read input from
  • Emacs:组织模式电子表格:通过 hline 定位

    我正在尝试在组织模式下记录我的时间 Bob Johnson Bob s SEO subject time minutes total hours optimization report 2011 07 11 8 10 00 PM PST 1
  • 如何编译适用于 Windows 的 Prometheus UI 静态二进制文件?

    我在尝试着从 Windows 上的 Grafana 访问 GCP 托管 Prometheus 指标 https stackoverflow com q 74563137 20592222 为此我需要为 Prometheus UI 前端编译一
  • 为高度倾斜的数据生成直方图

    我在用着dc js crossfilter js and d3 js生成条形图 条形图表示信用卡交易的数据 它绘制了交易数量 y 轴 与交易金额 x 轴 的关系 它看起来像这样 数据数组基本上如下所示 txn id 1 txn amount
  • WMI 与 Windows API

    使用该方法有任何优点或缺点WMI http msdn microsoft com en us library aa394582 28VS 85 29 aspx代替视窗应用程序接口 http msdn microsoft com en us
  • GitHub Enterprise 中的 GitHub 操作在 npm 包上提供 401 和 404

    我在用语义版本动作 https github com cycjimmy semantic release action在我的 GitHub 企业存储库上 直到最近它工作得很好 但开始失败这个错误 https github com cycji
  • 在 Typescript 中使用接口或类时[重复]

    这个问题在这里已经有答案了 我有一个简单的登录场景 需要用户在 Typescript 中输入电子邮件和密码 我需要创建某种类型来获取强类型并将其发送到后端 是否应该写成 export interface UserLogin email st
  • 将 git 存储库链接到多个 TFS 项目

    我有一个 git 存储库 需要作为共享库 通用代码在多个其他项目之间共享 使用此通用代码的项目都是TFS项目 TFS2013 我能够在 TFS 中托管 git 存储库 但无法弄清楚如何在不重复的情况下将 git 和 TFS 存储库链接在一起
  • 在 OS X 下的 PyCharm 上运行 GAE GCS,运行时错误“没有名为 cloudstorage 的模块”

    我正在尝试将 Google Cloud Storage 功能添加到已经运行且具有重要功能的 Python GAE 应用程序中 我的开发计算机完全在 PyCharm 中工作 该计算机是运行 OS X 10 9 5 的 Mac 我创建了一个新的
  • php foreach echo 打印“Array”作为值

    也许我只是无法理解 php 如何处理数组 我正在尝试使用 foreach 循环打印出一个数组 我能从中得到的似乎只有 数组 这个词 br 这会打印出以下内容 Array 我无法理解为什么会出现这种情况 如果我像上面一样预先定义一个数组 它将
  • Django:“unicode”对象没有属性“tzinfo”。仅生产服务器

    我很困惑 通过我的本地设置 python manage py runserver 一切运行正常 通过我的生产设置 wsgiserver CherryPyWSGIServer 我得到 unicode object has no attribu
  • GoogleCloudMessaging - InstanceID.getInstance(),从客户端注册

    我对 Java 编程和一般编程还很陌生 现在我决定制作自己的应用程序 该应用程序应该利用 Google Cloud Messaging 不知怎的 我成功了 但后来我意识到我使用了方法 String regid gcm register PR
  • 如何修复此分类报告警告?

    我创建了一个多类分类模型 一切都很顺利 验证准确度为 84 但当我打印分类报告时 我收到了此警告 UndefinedMetricWarning Precision and F score are ill defined and being
  • 检测 Android 上的 USB 网络共享

    有没有什么方法可以 以编程方式 在您的活动 应用程序中知道用户已在其手机上启用 USB 网络共享 您还可以使用反射来访问用于设置 USB 网络共享的隐藏功能 这是我的代码 ConnectivityManager cm Connectivit
  • Mutate_if 语法帮助 - 如何在谓词条件下添加函数参数

    寻找一些有关如何使用 dplyr 的 mutate if 语句来检查是否需要将列转换为因子变量的建议 这个函数说明了我正在尝试做的事情 问题是 当我想为函数中的 max value 参数传递一些内容时 正确的语法是什么 不起作用 我尝试更改
  • Android - 无法动态重新创建 Canvas 视图

    我试图显示在上一个屏幕中绘制的画布图像的网格视图 我有一组在第一个屏幕中绘制的不同视图 这些视图会发生变化 这些画布将根据用户的操作重新绘制 我有 5 个心形画布视图 并且我对每颗心使用不同的视图 这意味着我没有使用同一类来绘制五颗心 而是
  • Java中多项式乘以常量

    我在将多项式乘以常数 双精度 时遇到一些问题 当只有一个系数时它会起作用 但当存在多个系数时 它会给出 ArrayIndexOutOfBounds 错误并指向 setCoefficient 方法 有什么帮助吗 谢谢 public class
  • SwiftUI:呈现工作表时防止视图刷新

    我注意到添加时 SwiftUI 完全刷新了视图sheet修饰符 假设我有显示随机数的视图 我希望这个值是独立的 并且不与工作表逻辑相关 每次打开 关闭工作表时不会改变 但是每次提交 取消表格时文本都会发生变化 它应该这样工作吗 我的要点是错
  • 查询至少有 1 个关联,但返回全部

    我创建了这条记录 您可以看到它有 2 个标签 tag1 和 tag2 id d87de1d9 b048 4867 92fb a84dca59c87e name Test Name tags id fa0ca8fd eff4 4e58 8bb