PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да направя заявка, използвайки полета в новия PostgreSQL JSON тип данни?

Postgres 9.2

Цитирам Андрю Дънстан в списъка на pgsql-хакерите:

На някакъв етап вероятно ще има някои функции за обработка на json (за разлика от json-производство), но не и в 9.2.

Не му пречи да предостави примерна реализация в PLV8, която трябва да реши проблема ви. (Връзката вече е мъртва, вместо това вижте съвременния PLV8.)

Postgres 9.3

Предлага арсенал от нови функции и оператори за добавяне на "json-обработка".

  • Ръководството за новата функционалност на JSON.
  • Уикито на Postgres за новите функции в стр. 9.3.

Отговорът на оригиналния въпрос в Postgres 9.3:

SELECT *
FROM   json_array_elements(
  '[{"name": "Toby", "occupation": "Software Engineer"},
    {"name": "Zaphod", "occupation": "Galactic President"} ]'
  ) AS elem
WHERE elem->>'name' = 'Toby';

Разширен пример:

  • Комбинации от заявки с вложен масив от записи в тип данни JSON

За по-големи таблици може да искате да добавите индекс на израз, за ​​да увеличите производителността:

  • Индекс за намиране на елемент в JSON масив

Postgres 9.4

Добавя jsonb (b за "двоичен", стойностите се съхраняват като естествени типове Postgres) и още повече функционалност за и двете видове. В допълнение към индексите на изрази, споменати по-горе, jsonb също така поддържа GIN, btree и хеш индекси, като GIN е най-мощният от тях.

  • Ръководството за json и jsonb типове данни и функции.
  • Уикито на Postgres на JSONB в стр. 9.4

Ръководството стига дотам, че предлага:

Като цяло, повечето приложения трябва да предпочитат да съхраняват JSON данни като jsonb , освен ако няма доста специализирани нужди, като например наследени предположения относно подреждането на ключове за обекти.

Удебелен акцент мое.

Ползи за производителността от общи подобрения на GIN индексите.

Postgres 9.5

Попълнете jsonb функции и оператори. Добавете още функции за манипулиране на jsonb на място и за показване.

  • Основни добри новини в бележките за версията на Postgres 9.5.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да надстроите базата данни postgresql от 10 на 12, без да губите данни за openproject

  2. ScaleGrid PostgreSQL на VMware Cloud Infrastructure

  3. Динамична колона в оператор SELECT postgres

  4. PostgreSQL обработва имена в Windows

  5. 3 начина за изброяване на всички тригери за дадена таблица в PostgreSQL