knex postgres присоединяется как вложенный JSON - PullRequest
0 голосов
/ 17 октября 2018

Я использую knex с postgresql db, у меня есть строка в таблице A, которая имеет отношение «один к одному» со строками в таблице B и отношение «один ко многим» со строками в таблице C.

Я хочу присоединиться к строке из A с B и C и получить json, такой как

{
  aCol1: ...,
  b: {
    bCol1: ...,
    bCol2: ...,
  },
  c: [
    {
      cCol1: ...
    },
    {
      cCol1: ...
    }
  ]
}

Где такие вещи, как aCol означает столбец из таблицы A, bCol - столбец из таблицы B, который был объединен.

Как этого добиться одним запросом и объединениями?

1 Ответ

0 голосов
/ 19 октября 2018

Вы можете достичь этого одним запросом и присоединиться, но это становится слишком сложным.Вы должны использовать ORM вместо этого.

Objection.js основан на knex и позволяет выполнять запросы такого типа тривиальным и производительным способом (вы можете использовать объединения или несколько запросов, обычно несколько запросов более производительны).

С синтаксисом Objection.js это будет выглядеть так:

const res = await ATableModel.query().where('id',  a.id).eager('[b,c]');
...