【发布时间】:2021-02-20 06:56:42
【问题描述】:
我有一个 Postgres 数据库,它将数据存储在一个表中,该表具有以下列“日期 | uid | id | 值 | 数据”。
在我目前从这个查询中得到的 node.js 服务器上使用 knex:
data = await db(tableName).select(["date", "uid", "id", "value", "value as market_cap", "data"]).whereIn("id", ["index", "market_cap", "market"]);
以下结果:
"data": [
{
"date": "2020-11-07T21:43:11.709Z",
"uid": "nmvdqy0kh87sd8a",
"id": "index",
"value": "999.9999999999999",
"market_cap": "999.9999999999999",
"data": null
},
{
"date": "2020-11-07T21:43:11.709Z",
"uid": "nmvdqy0kh87sd8b",
"id": "market_cap",
"value": "10125616413",
"market_cap": "10125616413",
"data": null
},
{
"date": "2020-11-07T21:43:11.709Z",
"uid": "nmvdqy0kh87sd8c",
"id": "market",
"value": null,
"market_cap": null,
"data": {
"1": [],
"2": []
}
},
...
];
日期对都完全相同。存储在 id "market_cap" 下的数据实际上存储为 "value",存储在 id "market" 下的数据实际上存储为 "data"。
现在,我真正需要的是:
"data": [
{
"date": "2020-11-07T21:43:11.709Z",
"value": "999.9999999999999",
"market_cap": "10125616413",
"data": {
"1": [],
"2": []
}
},
...
];
有没有办法直接从数据库中获取这个数据结构,而不是在服务器上转换数据?如果您提供 knex 查询/SQL 查询,则可以加分。谢谢!
【问题讨论】:
标签: sql node.js database postgresql knex.js