PostgreSQL和nodejs/pg,返回嵌套的JSON

2023-12-09

我将 PostgreSQL 与 nodejs 和 pg 一起使用。 一切工作正常,但我想将 PostgreSQL 的结果作为嵌套 json 输出 - 就好像我正在使用 MongoDB 或类似的东西一样。

我来自 PostgreSQL 的 2 个表是:

portfolio (id int, name text)

cars (portfolio_id int, name text);

是否有返回具有以下结构的 JSON 对象的“正确”方法:

{
    { name: 'Portfolio #1', cars: { name: 'Car #1', name: 'Car #2' },
    { name: 'Portfolio #2', cars: { name: 'Car #3' }
}

我在nodejs/pg中查询数据库的一般方法是:

client.query('SELECT ...', [params], function(err, result) {
    done();
    if (err) {
        res.status(500).json({ error: err });
    } else {
        res.json({ portfolios: result.rows });
    }
});

在 PostgreSQL 中,您可以构建以下 JSON 对象:

[
    { "name": "Portfolio #1", "cars": [ "Car #1", "Car #2" ] },
    { "name": "Portfolio #2", "cars": [ "Car #3" ] }
]

您可以使用以下查询从表构建对象:

select array_to_json(array(
  select row_to_json(n)
  from portfolio p
  left join lateral (select p.name, array(select name from cars where portfolio_id = p.id) as cars) n on true
  ))

cars.votes领域包括:

select array_to_json(array(
  select row_to_json(n)
  from portfolio p
  left join lateral (select p.id, p.name, array_to_json(array(
     select row_to_json((select a from (select c.name, c.votes) a))
     from cars c
     where portfolio_id = p.id)) as cars) n on true
  ))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostgreSQL和nodejs/pg,返回嵌套的JSON 的相关文章

随机推荐

  • 来自 godaddy 服务器的 php mail()

    我使用 godaddy 托管我的网站并使用默认的 godaddy 邮件服务 现在我想使用 php 邮件功能从我的 godaddy 电子邮件帐户的 15 个电子邮件地址中的 1 个向其他电子邮件地址发送电子邮件 我该如何解决从哪个电子邮件地址
  • 非静态字段、方法或属性需要对象引用

    我在构建 vs2008 net 3 5 解决方案时收到错误 错误 1 非静态字段 方法或属性 System Web UI Page Request get 需要对象引用 String XSLTPath Page Request Url Sc
  • 处理用户控件,真的意味着编辑 .designer.cs 文件吗?

    对于具有必须处理的内部数据结构的用户控件 将该代码添加到 designer cs 文件中的 Dispose 方法的正确位置是否正确 或者是否存在我们要使用的事件或其他内容 Edit 这是一个winforms用户控件 如果您谈论的是 WinF
  • 以任意角度将球从墙上弹起?

    我试图让用户画一个球拍 然后他们可以用它来击球 然而 我似乎无法让球正确弹跳 因为球速度的 x 和 y 分量没有与墙壁对齐 我该如何解决这个问题 我尝试了加雷斯 里斯 Gareth Rees 给出的建议here 但显然我对向量了解不够 无法
  • 在 DataTemplate UWP 中绑定 ComboBoxItem 的 IsSelected 属性

    我正在尝试绑定 ComboBoxItem 的属性 IsSelected 以显示正确的图标 如果选择了项目 则应显示红色图标 否则打开列表的其余部分为灰色 我如何尝试实现该功能的方式如下面的代码所示
  • C# Xamarin Timer 类不更新视图

    using System using System Collections Generic using System Linq using System Text using System Threading Tasks using Sys
  • 窗口弹出窗口 - 如何让 window.blur() 或 window.focus() 在 FireFox 4 中工作?

    我知道 FF4 不允许使用window blur 除非在 FF 配置中启用了 升高或降低窗口 设置 它简单地忽略了该事件 我知道某些网站仍然设法打开弹出窗口并保持当前窗口的焦点 即使此设置已关闭 他们是如何实现这一目标的 此外 我不明白为什
  • 如何在运行时存储或读取动画剪辑数据?

    我正在开发一个小程序 可以在运行时修改动画 例如 当你跑得更快时 动画不仅播放得更快 而且运动也更大 所以我需要获取现有的动画 更改其值 然后将其发送回来 我发现很有趣的是 我可以为动画设置一条新曲线 但我无法访问我已经拥有的曲线 因此 我
  • md5是否可以阻止SQL注入

    Ok 所以 我对此有点不确定 我有一个 url 参数username 我有这样的声明 SELECT FROM users WHERE user hash md5 GET username 这安全吗 创建帐户后 将存储用户名和密码的 md5
  • 异步 JavaScript 程序中的函数调用到底是如何排序的?

    我正在学习的概念异步编程在 JavaScript JS 中 但是 我很难理解这一点 这几天我一直在网上阅读各种文章来理解它 但我无法理解这个想法 那么 我的疑问如下 setTimeout function alert Hello 1 300
  • Git 从命令行注销用户

    有没有退出git的命令 我正在将我的计算机移交给其他人 并且不希望 git 附加到我在终端中的帐户 我遇到了同样的问题 上面的答案对我不起作用 因为github我的凭据是通过 Windows 凭据管理器而不是 git bash 提供的 您可
  • Python Google Cloud 函数缺少日志条目

    我正在第一次尝试 GCP 的云函数和 python 并希望将 python 的日志记录充分集成 以便它们能够很好地适应 GCP 的日志记录基础设施 特别是为了识别严重性级别 并且最好还包括execution ids 和跟踪 id 我一直在关
  • 切换隐藏/显示 Google 地图标记

    我有一个自定义的谷歌地图 上面有艺术家位置的标记 我想做 8 种不同类别的标记 我读到必须制作标记数组并分配类别 但老实说我不知道 从哪里开始 我认为这个问题很接近我想要的 按类别打开 关闭 Google 地图标记 试图让它发挥作用 但无济
  • 列出每个存储桶的缩略图

    我有2节课 首先是用于搜索所有文件夹 我的意思是桶列表名称 秒级制作缩略图 但我需要每个桶都有缩略图 因此 当我按下文件夹时 它应该显示其中的所有照片 缩略图 有人可以帮我吗 第一类 public class ThumbnailAdapte
  • 可变边的三栏网页设计

    我一直在尝试想出一种方法来创建 3 列网页设计 其中中心列具有恒定的宽度并且始终居中 左侧和右侧的列是可变的 这在表中是微不足道的 但在语义上并不正确 我无法在所有当前浏览器中使其正常工作 这方面有什么建议吗 Use 这项技术 只需为中心列
  • ASP.NET 中的 OpenStreetMap

    我有兴趣在使用 ASP NET 开发的 Web 应用程序中使用 OpenStreetMap 有人知道在 ASP NET 中是否有使用 OpenStreetMap 的控件 库或包装器 C 不使用 JavaScript 我不确定他们是否有任何
  • 避免从不同位置多次登录帐户

    我想限制同一用户从不同位置多次登录 如何识别用户在同一时间 最近时间从不同位置多次登录 我认为表中的一些标志和 IP 检查可能是一个可能的解决方案 但是有更好的解决方案吗 更新 我认为会话或 cookie 如果适用于单台机器可能会有所帮助
  • 使用 bigquery 根据日期将表拆分为多个表,并使用单个查询进行分区

    我想做的最初的 原因 是 恢复表时保持其原始分区 而不是将其全部放入今天的分区中 我以为我能做的是bq load到临时表 然后运行一个查询 按照所需的命名约定将该表拆分为每天一张表 YYYYMMDDbq partition i e shar
  • 在 R 数据表中添加单元格边框

    对 R 相当陌生 在大局方面做得还不错 但当我想向其他人展示一些东西时 却很难清理边缘 用可能非常简单的东西把我的头撞在墙上 我只是想在一个闪亮的应用程序的数据表中添加单元格边框 到所有单元格 这是相关的代码块 library ggplot
  • PostgreSQL和nodejs/pg,返回嵌套的JSON

    我将 PostgreSQL 与 nodejs 和 pg 一起使用 一切工作正常 但我想将 PostgreSQL 的结果作为嵌套 json 输出 就好像我正在使用 MongoDB 或类似的东西一样 我来自 PostgreSQL 的 2 个表是