一般社団法人 全国個人事業主支援協会

COLUMN コラム

TypeORMではQueryRunnerというものが使え、DBにクエリを投げることができます。

const ids = await queryRunner.query("SELECT id FROM hoges");
といった感じで、これだと、idsは[{id:**}]な形になっています。
MySQLではJSONも扱うことができ、例えば
const hogeIds = await queryRunner.query(`SELECT JSON_EXTRACT(poi, '$.hogeIds') FROM hoges WHERE id=${id["id"]}`).then((val)
=>JSON.parse(Object.values(val[0])[0] as string) )
とやれば、JSON型のpoiの中のhogeIdsを取得して、その配列型のJSONをパースしています。
JSONの変更をしたいときは
await queryRunner.query(`UPDATE hoges SET poi=JSON_SET(poi, '$.hogeIds[${index}].puga', "${puga}") WHERE id=${id["id"]}`);
のように変更したいJSONの要素を指定して更新をかけることができます。
The following two tabs change content below.

片桐 奏羽

アプリ開発をしながら物理を研究しています。

最新記事 by 片桐 奏羽 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア