Я хочу вернуть {id: 'single-entry'}
вместо [{Id:'single-entry'}]
Я бегу PostgreSQL v11.5
Я просмотрел много разных примеров в Интернете, но массив с одной строкой выигралне превращается в объект json.
Из этого запроса:
SELECT row_to_json(row)
FROM
(
SELECT
t.*,
json_agg(json_build_object('name', tr."name", 'id', r."remixTrackId"))
FILTER (WHERE tr."id" IS NOT NULL)
AS remixes
FROM "Tracks" t
LEFT JOIN "Remixes" r ON r."originalTrackId" = t."id"
LEFT JOIN "Tracks" tr ON tr."id" = r."remixTrackId"
WHERE t."id" = '${trackId}'
GROUP BY t."id"
) row;
Что я бы ожидал:
{
"id": "track-id2",
"name": "My track 2",
"dateModified": "2019-11-09T21:41:30.482634",
"channels": {
"some": "json"
},
"userId": 1,
"remixes": null
}
Что я получу:
[
{
"row_to_json": {
"id": "track-id2",
"name": "My track 2",
"dateModified": "2019-11-09T21:41:30.482634",
"channels": {
"some": "json"
},
"userId": 1,
"remixes": null
}
}
]
Соединение с БД и запрос выглядят так. Я использую Node и Heroku, где работает Postgres
Это более полный фрагмент того, как я выполняю запрос:
const pg = require('pg')
const config = {
user: 'xxx',
database: 'xxx',
password: 'xxx',
port: 5432,
ssl: true
};
const pool = new pg.Pool({
connectionString: `postgres://${config.user}:${config.password}@xxx.amazonaws.com:5432/${config.database}`,
...config
})
app.get('/api/postgres/get-track', function(request, response) {
const trackId = R.path(['query','id'], request)
pool.connect(function(err, client, done) {
if(err) {
response.send("Could not connect to DB: " + err)
} else {
client.query(`
SELECT row_to_json(row)
FROM
(
SELECT
t.*,
json_agg(json_build_object('name', tr."name", 'id', r."remixTrackId"))
FILTER (WHERE tr."id" IS NOT NULL)
AS remixes
FROM "Tracks" t
LEFT JOIN "Remixes" r ON r."originalTrackId" = t."id"
LEFT JOIN "Tracks" tr ON tr."id" = r."remixTrackId"
WHERE t."id" = '${trackId}'
GROUP BY t."id"
) row;
`, function(err, result) {
done()
if(err) return response.send(err)
response.send(result.rows);
})
}
})
})
Пожалуйста, помогите мне указать, что я делаю неправильно,Заранее спасибо!