私はこれに対する答えを探していますが、私が探していたものに近いものは見つけられませんでした。PostgresネストされたJSON配列を返す
CREATE TABLE skill_tree (
ID SERIAL PRIMARY KEY,
NAME TEXT NOT NULL,
DESCRIPTION TEXT NOT NULL
);
と
CREATE TABLE skill (
ID SERIAL PRIMARY KEY,
NAME TEXT NOT NULL,
DESCRIPTION TEXT NOT NULL,
DURATION INTEGER NOT NULL,
COOLDOWN INTEGER NOT NULL,
SKILL_TREE_ID SERIAL REFERENCES skill_tree(id)
);
私はそれがそうのように構成されているように私のPostgresのDBからJSONを返すようにしようとしています:
[{
"id": 1,
"name": "skill tree 1",
"description": "skill tree description",
"skills": [{
"id": 1,
"name": "skill 1",
"description": "skill 1 desc",
"duration": 10,
"cooldown": 20
}, {
"id": 2,
"name": "skill 2",
"description": "skill 2 desc",
"duration": 20,
"cooldown": 30
}]
}]
は、私は2つのテーブルを持っています
私はここから似たようなものを得ることができました[PostgreSQL and nodejs/pg, return nested JSONしかしそれ以上何も検索できませんでしたスキルの名前。
CREATE TABLE skill (
ID SERIAL PRIMARY KEY,
NAME TEXT NOT NULL,
DESCRIPTION TEXT NOT NULL,
DURATION INTEGER NOT NULL,
COOLDOWN INTEGER NOT NULL,
SKILL_TREE_ID INTEGER REFERENCES skill_tree(id) -- cannot be serial!
);
使用jsonb_build_object()
とjsonb_agg()
を:
今私は何が間違っているかを見ます。 'SKILL_TREE_ID'列はシリアルにすることはできません。 –