Knex/SQL:将一对多联接合并到一个对象中

2024-03-10

我有两个表:“page”和“page_css”。我想要page和page_css之间是一对多的关系(一个页面包含多个page_css)。 参见表结构:

Page table structure: page table structure

Page_css table structure: page_csss_table_structure

这是我正在使用的 Knex 查询:

var page = knex('page')
  .where({ slug: req.params.slug })
  .join('page_css', { 'page_css.page_id': 'page.id' })
  .then(function(page) {
    if (page) {
      return res.json(page);
    }
    return res.send('page not found');
  });

这是我得到的结果:

但我想要这样的结果:

我需要运行什么 SQL/Knex 查询才能得到上面的格式?


Knex 无法施展魔法,它“只是”构建正确 SQL 查询的查询生成器。

您需要将这个平面结果转换为您希望的对象。

const flatData = [{
  id: 1,
  slug: 'test',
  page_id: 1,
  css_file: 'main'
}, {
  id: 1,
  slug: 'test',
  page_id: 1,
  css_file: 'hero'
}];

const resultMap = flatData.reduce((result, row) => {
  result[row.id] = result[row.id] || {
    ...row,
    css_file: []
  };

  result[row.id].css_file.push(row.css_file);

  return result;
}, {});

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

Knex/SQL:将一对多联接合并到一个对象中 的相关文章

随机推荐

  • 在 iPad 上滚动 iframe [重复]

    这个问题在这里已经有答案了 可能的重复 IFRAME 和 iPad 上的 Safari 用户如何滚动内容 https stackoverflow com questions 4599153 iframes and the safari on
  • 如何在 Swift 中压缩展开多个选项?

    我想解开这 6 个可选变量 如果它们为空 我想给它们一个空字符串值 这样我就可以将这些变量打包到发送到 API 的参数数组中 我仍然是 Swift 的初学者 这是我理解如何实现这一点的唯一最简单的方法 但我内心的编码员说这看起来很多余 而且
  • 错误:无法在此小部件上方找到正确的提供者< >

    我看不出我在下面做错了什么 但它抛出了一些提供程序错误和构建上下文 发生这种情况是因为您使用了BuildContext不包括提供者 你的选择 有以下几种常见场景 您在您的目录中添加了一个新的提供商main dart并执行热重载 要修复 请执
  • 如何清除 Eclipse Indigo 的缓存

    我想知道清除 Eclipse Indigo 缓存的标准方法是什么 您可以在启动 eclipse 时使用 clean 参数 例如 C eclipse eclipse exe vm C Program Files Java jdk1 6 0 2
  • 如何使用 Moles 通过 LINQ 从表中重定向选择?

    我有一个名为 订阅 的表 我想将该表中的任何 LINQ 选择重定向到 Moles lambda 以便从该表中只返回 3 行 基本上我想绕过对数据库的调用 到目前为止 我的代码如下所示 lazy loader is here to handl
  • 将现有的 C++(.h 和 .cpp)文件转换为 Android 的 java [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在 Eclipse 下为 Android 进行开发 我有一些 C h 和 cpp 文件希望在我的 A
  • Visual Studio 2015 发布 Web 仅具有自定义选项

    我正在使用 Visual Studio 2015 进行网络项目的网络发布 但似乎网络发布配置文件中的几个选项丢失了 此链接中应该包含选项使用 Visual Studio 2015 通过 Web 部署发布到 IIS http docs asp
  • 如何防止更改数组或对象的值

    我是 Java 初学者 在开发程序时 我使用构造函数创建了一个对象 并以变量作为参数 但是 当我在创建对象后更改变量的值时 我的对象具有第二个值而不是第一个值 我不希望我的对象改变值 我该怎么办 public class Person pu
  • Twitter Bootstrap - 全宽背景(图片)

    我目前正在进行一个项目 正在尝试很棒的 Twitter Bootstrap 包括响应式网格 除了一个问题之外 一切都运行良好 你如何给予 container 包含网格 背景颜色 例子 div class container green di
  • 每个请求上的 51Degrees 重新加载会减慢 ASP.NET MVC 的速度

    添加 51Degrees 移动检测库后 我的 ASP NET MVC 3 项目速度慢得像爬行一样 51Degrees 日志文件定义为
  • @Value 在单元测试中返回 null

    我有一个带有端点测试配置类和单元测试的 Spring Boot 应用程序来测试我的 http 客户端 我试图从位于我的 src test 中的 application properties 获取我的服务器地址和端口 所有类都在我的 src
  • 如何在action方法中获取匹配的token参数值?

    如果我的语法中有这样的内容 grammar G token tab indent Int level Using just level would require to have the same effect so use a code
  • Jquery 5秒后显示按钮[重复]

    这个问题在这里已经有答案了 所以我得到了这个按钮 我需要在 5 秒后显示它 我没有 jquery 或 javascript 经验 HTML 代码 p You need to wait 0 before you can proceed p
  • 有没有像 Reflector 这样的 COM 库工具?

    有没有像 Reflector 这样的 COM 库工具 我想打开一个 COM 库并浏览类和接口 就像在 Reflector 中一样 如果可能的话 我宁愿不安装 Visual Basic 6 0 来执行此操作 但方式不同 有许多工具可以让您检查
  • 在 Sqlalchemy 中导入 create_engine 时出现循环导入错误

    我正在尝试使用 Python 进行 CS50 Web 开发课程 在 sql 部分中 在从 sqlalchemy 导入 create engine 时出现此错误 ImportError 无法从部分初始化的模块 sqlalchemy 导入名称
  • PHP 事件监听器最佳实践实现

    我正在尝试用 PHP 创建一个类似 CMS 的系统 使其尽可能模块化和可扩展 有人可以为我提供在 PHP 中创建事件侦听器系统 例如 Drupal 系统的非常简化版本 的最佳实践方案 创建挂钩并在一个简短的示例中实现它们也很好 嗯 从实现的
  • Laravel Eloquent Join 与 Inner Join?

    所以我在弄清楚如何进行 feed 风格的 mysql 调用时遇到了一些麻烦 我不知道这是一个雄辩的问题还是 mysql 的问题 我确信两者都是可能的 我只是需要一些帮助 所以我有一个用户 他们进入他们的提要页面 在此页面上显示来自他们朋友的
  • 选择所有 li,但不选择子项

    我有这个代码 li li this 这是选择所有的li在我的代码中 这很好用 但我想要 li排除li位于子菜单中 ul li a href blah 1 a li ul li a href sub 1 a li li a href sub
  • Ant复制过程中如何删除一个文件夹

    我有一个文件 其文件路径类似于 LibraryX A Stuff FileY txt 我在 Ant 构建中将其用作包含文件 但是 我需要在复制过程中删除路径的 LibraryX A 部分 文件从 LibraryX A Stuff FileY
  • Knex/SQL:将一对多联接合并到一个对象中

    我有两个表 page 和 page css 我想要page和page css之间是一对多的关系 一个页面包含多个page css 参见表结构 Page table structure Page css table structure 这是我