У меня есть приложение, написанное на Javascript, которое использует базу данных postgreSQL (9.6) для хранения данных.Есть ли способ, как вставить объект Javascript непосредственно в БД?
Я создал этот пример таблицы:
CREATE TABLE people (
"uuid" uuid PRIMARY KEY,
"name" text NOT NULL,
"phone" number
);
Объект Javascript в приложении:
{
uuid: 'df7c5fdc-d6b7-4b5e-ac3b-1228fac64a90',
name: 'Martin',
phone: 123456
}
СейчасУ меня есть массив разных людей (массив объектов выше), и мне удалось вставить его в БД следующим образом:
let uuids = people.map(p => `'${p.uuid}'`) // adding quotes, otherwise syntax error
let names = people.map(p => `'${p.name}'`)
let phones = people.map(p => `'${p.phone}'`)
INSERT INTO people (
"uuid",
"name",
"phone"
)
VALUES (
UNNEST(ARRAY[${uuids}])::uuid,
UNNEST(ARRAY[${names}])::text,
UNNEST(ARRAY[${phones}])::number
)
Есть ли способ сделать это более эффективно?как в монго db.collection.insertMany(array)
?Кроме того, я хотел бы опустить некоторые значения и иметь их NULL
, что невозможно в этом примере.
Я искал в документации PostgreSQL, и есть несколько функций для работы с json, но я не смог найти подходящих для этого.
Спасибо за помощь.