sql >> Databasteknik >  >> RDS >> PostgreSQL

Konvertera objektmatris till matriskompatibel för nodejs/pg/unnest

Du kan skicka din JSON-sträng som den är och få PostgreSQL att hantera den:

update portfolios p
set votes = s.votes
from (
  select (e->>'votes')::int as votes, (e->>'id')::int as id
  from (select (regexp_replace($1, '"\1"', 'g'))::jsonb as jarr) j
  cross join jsonb_array_elements(jarr) e
  ) s
where p.id = s.id;

Där $1 är [{votes: 5, id: 1}, {votes: 15, id: 1}, {votes: 25, id: 2}]', '([a-z]+) som en sträng.



  1. Släpp icke namngivna begränsningar

  2. PostgreSQL:Hur ställer jag in sökvägen på användarnivå?

  3. Hur säkerställer du att värden från en loggningstabell matchar objekt i andra tabeller?

  4. Bygg ett bord vid körning i Ruby on Rails