Как вставить массив, используя паруса ватерлинии в таблицу postgresql? - PullRequest
0 голосов
/ 08 апреля 2019

Я хочу вставить массив строк в один столбец таблицы postgresql, используя ватерлинию ORM из sailsjs.

Я попытался сделать модель Users.js следующим образом:

 interest:{
      type: 'string',
      required: false,
      columnType: 'array'
    }

Запрос на вставку выглядит следующим образом:

Users.create({ interest : ['programming'] });

Тип данных в таблице postgre для столбца интереса: character varying[].

Когда я пытаюсь выполнитьвставить с помощью этой установки, он выдает ошибку:

 Specified value (a array: [ 'programming' ]) doesn't match the expected type: 'string'

как я могу вставить массив в таблицу postgresql, как должна выглядеть модель?Любая помощь будет оценена.

1 Ответ

1 голос
/ 11 апреля 2019

Я довольно часто использую массивы PG в своих проектах, и у меня никогда не было проблем с использованием type: 'ref', а затем указанием типа массива postgres в columnType. Примерно так:

 things: {
  type: 'ref',
  columnType: 'text[]',
  defaultsTo: null, // or defaultsTo: []
  description: 'An array of stringy-things',
},

Документы типа массива PG: https://www.postgresql.org/docs/9.1/arrays.html,, но в основном вы хотите, вероятно, захотите использовать <TYPE>[] для вашего columnTypes, то есть integer[] и т. Д.

...