В отношении к UPDATE multiple rows from multiple params in nodejs/pg, мне нужно выполнить следующую команду:Преобразовать массив объектов в массив совместимый для nodejs/пг/unnest
update portfolios p
set votes = s.votes
from unnest(array[(5, 1), (15, 1), (25, 2)]) s (votes int, id int)
where p.id = s.id
где мой массив в unnest составляет $ 1, следующим образом:
update portfolios p
set votes = s.votes
from unnest($1) s (votes int, id int)
where p.id = s.id
Однако мой массив изначально состоит из объектов, как:
[{votes: 5, id: 1}, {votes: 15, id: 1}, {votes: 25, id: 2}]
Я попытался преобразовать его с:
my_array = my_array.map(function(e) { return tuple(e.votes, e.id); });
Но это не удается.
Мне нужно скорректировать совместимый массив со значениями для использования с pg и Client.query.
Как я могу преобразовать свой массив объектов в соответствие с javascript и postgresql unsest?
Зачем вам нужно сделать это одно утверждение 'update'; почему бы не запустить несколько операторов 'update'? –
Я использую nodejs с pg, который не поддерживает несколько запросов, не делая ручную петлю между всеми утверждениями - видимо. Если доступно другое решение, я все уши. –
Как это происходит? Есть ли способ вывести запрос, который подается в Postgresql? –