knex:从结果创建数组的适当方法是什么?

2024-01-09

我有一个端点连接user and user_emails表作为一对多关系(postgresql)。它看起来如下。

router.get('/', function (req, res, next) {
  db.select('users.id', 'users.name', 'user_emails.address')
    .from('users')
    .leftJoin('user_emails', 'users.id', 'user_emails.user_id')
    .then(users => res.status(200).json(users))
    .catch(next)  // go to error handler
});

但是,这将为每个电子邮件地址返回一个新文档。我想要的是一组如下所示的文档:

[{
  id: 1,
  name: 'Steve',
  emails: [
    { address: '[email protected] /cdn-cgi/l/email-protection' },
    { address: '[email protected] /cdn-cgi/l/email-protection' }
  ]
}, {
  id: 2,
  name: 'Jimmy',
  emails: [
    { address: '[email protected] /cdn-cgi/l/email-protection' }
  ]
}]

这应该如何在 knex 中完成?


假设您正在使用 Postgres - 您需要使用array_agg函数生成数组。我建议使用 knex.raw

请告诉我这是否有效。

   knex('users')
    .innerJoin('user_emails','users.id','user_emails.user_id')
    .select([
      'users.id as userID',
      'users.name as userName',
      knex.raw('ARRAY_AGG(user_emails.adress) as email')
    ])
    .groupBy('users.id','users.name')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

knex:从结果创建数组的适当方法是什么? 的相关文章

  • 以编程方式填写reactjs表单

    我正在编写一个用户脚本 但无法填写由reactjs制作的表单 我的代码 document querySelector id username value email protected cdn cgi l email protection
  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • Chrome 中的性能问题

    我目前正在从事一个相对较大的项目 使用 AngularJs 构建 应用程序的一部分是一个表单 您可以向其中添加任意数量的页面 不幸的是 添加了很多不必要的垃圾 即表示表单模型的对象可能会变得非常大 在某些时候 Chrome 基本上无法处理它
  • 如何使用javascript将大图像转换为十六进制?

    如果我尝试将图像转换为十六进制 无论我使用哪个函数 我都会收到此错误消息 该图像的大小为 7 MB 19812 毫秒 清理 1401 2 1455 0 gt 1401 2 1455 0 MB 9 9 0 ms 自上次 GC 以来 8 3 m
  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的
  • 使用 dc.js 按条形值对条形图中的条形进行排序(排序)

    如何通过维度的计算值而不是维度本身的名称对 dc js 示例中的 x 轴 维度 进行排序 例如 请考虑序数条形图的 dc js 示例 https github com dc js dc js blob master web examples
  • Snap.svg - 停止在可悬停元素的子元素上重新触发悬停事件

    对于一个项目 我使用的 SVG 形状由背景多边形和背景多边形上方的一些文本 我已将其转换为路径 组成 我正在使用 Snap svg 为我的形状设置动画 当我将鼠标悬停在多边形上时 形状应该缩放到特定尺寸 包括其中的所有内容 鼠标移开时 形状
  • 隐藏 Div 的父级

    我只是想隐藏父divcomments section div class content content green div div div 我试过这个 document getElementById comments section pa
  • 有没有办法使用 Rspec/Capybara/Selenium 将 javascript console.errors 打印到终端?

    当我运行 rspec 时 是否可以让 capybara selenium 向 rspec 报告任何 javascript console errors 和其他异常 我有一大堆测试失败 但当我手动测试它时 我的应用程序正在运行 如果不知道仅在
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 使用 CSS 或 Javascript 填充动画

    我只是想知道是否可以使用 CSS 或 javascript 创建填充动画 基本上我想创建一个填充动画 如下图所示 http i40 tinypic com eit6ia png http i40 tinypic com eit6ia png
  • Javascript split 不是一个函数

    嘿朋友们 我正在使用 javascript sdk 通过 jQuery facebook 多朋友选择器在用户朋友墙上发布信息 但是我收到此错误friendId split 不是函数 这是我的代码 function recommendToFr
  • 将 UMD Javascript 模块导入浏览器

    你好 我正在对 RxJS 进行一些研究 我可以通过在浏览器中引用它来使用该库 如下所示 它使用全局对象命名空间变量 Rx 导入 我可以制作可观察的东西并做所有有趣的事情 当我将 src 更改为指向最新的 UMD 文件时 一切都会崩溃 如下所
  • 日期出现奇怪的错误,“未捕获非法访问”

    所以我试图找到最新的DateJavascript 可以处理 我把它减少到 9 月 275760 并增加了我开始捕获未捕获的天数illegal access例外new Date 09 24 275760 to new Date 10 13 2
  • 无法连接到数据库 - Postgres Job Scheduling 发布(基于 Windows 的计算机)

    我在互联网上搜索这个问题 但找不到正确的答案 这link https stackoverflow com questions 35410829 postgresql9 4 scheduling agent pgagent couldnt g
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • 在 JavaScript 循环之外声明变量可以提高速度和内存?

    C 也有类似的问题 但我们没有看到 JavaScript 的任何问题 在循环内声明变量是否可以接受 假设循环有 200 次迭代 使用样本 2 相对于样本 1 是否有性能要求 内存和速度 我们使用 jQuery 来循环 它提高了我们将 var
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 在 Shopify 商店中嵌入 Vue 组件

    在产品页面中 我尝试显示自定义 Vue 组件 为简洁起见 该组件根据给定的产品 ID 显示 Firebase 数据库中的一些信息 我最初尝试将其制作为 Shopify 应用程序 以便我可以访问他们的 API 我实现了 OAuth 并且可以检
  • 如何用另一个响应替换窗口的 URL 哈希?

    我正在尝试使用替换方法更改哈希 URL document location hash 但它不起作用 function var anchor document location hash this returns me a string va

随机推荐

  • 使用套接字时“流结束”是什么意思

    在 Java 中使用套接字时 如何在开始处理数据之前判断客户端是否已完成所有 二进制 数据的发送 例如考虑 istream new BufferedInputStream socket getInputStream ostream new
  • Swift:替换字符串中的字符 - 没有 stringByReplacingOccurrencesOfString

    好吧 假设我有一个String like let myString my string hello 我想用 替换 我到目前为止 let characters map Array myString 0 0 它返回一个MapCollection
  • 缩放后为不同标签设置相同的字体大小

    我正在制作一个有 3 个标签的应用程序 我正在使用标签自动收缩来帮助调整标签的字体大小以适应设备 这些标签彼此相邻 因此这意味着我希望它们具有相同的字体大小 目前发生的情况是 因为它们有不同数量的文本 它们最终会缩小到不同的字体大小 有没有
  • 混淆 JavaFX 应用程序

    由于 fxml files 使用控制器类来处理事件 那么如何混淆 JavaFX 应用程序呢 当混淆的控制器类具有不同的名称和路径时 fxml 文件无法找到它们 混淆后编辑 fxml 文件不是我正在寻找的解决方案 还有其他选择吗 没有必要重新
  • OkHttp SSLHandshakeException SSL 握手中止 SSL 库中出现故障,协议错误

    04 23 17 17 38 434 21599 21956 D NativeCrypto ssl 0x0 NativeCrypto SSL interrupt 04 23 17 17 38 435 21599 21956 D OkHttp
  • 夏令时和 Cron

    如果 Cron 有一项工作安排在凌晨 2 点运行 另一项工作在凌晨 3 点运行 这些工作将如何受到夏令时的影响 当时间向后移动一小时时 时间是否会直接从凌晨 2 59 59 变为凌晨 2 00 00 这意味着凌晨 2 点的作业将运行两次 凌
  • 运行时设置 TextView 在 RemoteView 中的位置

    亲爱的大家 我正在尝试在应用程序小部件中设置 TextView 的位置 基本上 直接访问 TextView 的属性是有效的 myRemoteView setTextColor R id myTextView Color WHITE work
  • 检测鼠标被按住

    我试图检测何时按住鼠标而不是单击鼠标 这就是我所拥有的 但我希望能够检测到鼠标被按住 而不是点击计数 void mouseDown NSEvent event instead of clickCount I want my if state
  • 为什么 `'↊'.isnumeric()` 为 false?

    根据官方 Unicode 联盟代码表 http www unicode org charts PDF U2150 pdf 所有这些都是数字 然而 当我要求 Python 告诉我哪些是数字时 它们都是数字 甚至 除了四个 In 252
  • Postgres 中从多行到单列

    我通过 pgAdmin 4 使用具有只读访问权限的 Postgres 9 5 并且尝试编写一个选择查询来转换来自此表单的数据 username filters groups roles kd24 Khaled lt 27607 gt V1
  • 如何使用 SIMD 比较两个向量并获得单个布尔结果?

    我有两个分别包含 4 个整数的向量 我想使用 SIMD 命令来比较它们 假设根据比较结果生成一个结果向量 其中每个条目为 0 或 1 然后 我想将结果向量与 4 个零的向量进行比较 只有当它们相等时才执行某些操作 你知道我可以使用哪些 SI
  • 如何根据对象的属性比较两个 NSSet?

    我有两个 nsset nsset1 person id 1 person id 2 person id 3 nsset2 person id 1 person id 2 结果应该是 nsset1 nsset2 person with id
  • 在自己的 php 框架中管理 URL 路由

    我正在创建一个 PHP 框架 但我有一些疑问 框架以这种方式获取 url http web com site index 它采用第一个参数来加载控制器 site 然后加载特定的动作 index 如果您已将框架安装在基本 URL 中 则可以正
  • 如何在 Cypress.io 中强制测试失败

    在 Cypress io 中 如果满足特定条件 有没有一种方法可以强制测试失败 例如 在我的网页上 如果字符串 抱歉 出了点问题 出现在我希望测试失败的页面上 目前这就是我正在做的事情
  • 有什么方法可以知道哪个集合视图单元格位于特定点?

    我有一个 CGPoint 我想知道我的集合视图中的哪个单元格当前包含该点 有什么简单的方法可以做到这一点还是我必须编写自己的方法 我没用过UICollectionView就这么多 但有一个看起来很完美的方法 NSIndexPath inde
  • 在 Visual Studio 项目模板中添加引用?

    我正在为 VS2015 创建一个多项目模板 其中创建的项目之一引用另一个项目 如何使用模板添加参考 如果我使用 VS GUI 添加引用 它会将以下内容添加到 vcxproj 文件中
  • 理解 Node.js 中的 Promise 拒绝

    我正在尝试理解 Node js 中的 Promise 这是示例代码 con queryReturnPromise SELECT FROM bookings WHERE driverId accId AND bookingStatus con
  • dart / flutter 使用 sudo 运行进程

    我想为 mac 桌面开发一个 flutter 应用程序并使用以下命令访问 macs powermetricssudo powermetrics有没有办法在第一次运行时向用户询问此命令的 sudo 权限 嗨 我只是在玩颤振 我正在解决同样的问
  • 快捷栏操作文本颜色未改变

    我想更改小吃栏的操作文本颜色 但由于某种原因它不起作用 我使用以下代码来显示小吃栏 Snackbar make findViewById R id root text Snackbar LENGTH LONG setActionTextCo
  • knex:从结果创建数组的适当方法是什么?

    我有一个端点连接user and user emails表作为一对多关系 postgresql 它看起来如下 router get function req res next db select users id users name us