sql >> Database teknologi >  >> RDS >> PostgreSQL

Konverter objekt-array til array-kompatibel for nodejs/pg/unnest

Du kan sende din JSON-streng, som den er, og få PostgreSQL til at håndtere 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;

Hvor $1 er [{votes: 5, id: 1}, {votes: 15, id: 1}, {votes: 25, id: 2}]', '([a-z]+) som en streng.



  1. Sådan opdaterer du eksisterende data med SQLite

  2. Oracle indsæt fra vælg i tabel med flere kolonner

  3. Hvordan indlæses DATA INFILE i mysql med den første kolonne som Auto Increment?

  4. Hvorfor bruger iteration gennem et stort Django QuerySet enorme mængder hukommelse?