История изменений
Исправление k0valenk0_igor, (текущая версия) :
Это может оказаться совсем не одним и тем же. Предположим я положил коллекцию документов в поле JSONB. Но с точки зрения PostgreSQL это может оказаться вовсе не коллекция документов, а массив данных типа JSON! И разница будет очень существенна: в поддерживаемых операциях на стороне сервера.
Я, предположим, захочу во всех документах изменить определенных атрибут. Так вот, с точки зрения «поле JSONB - это набор данных типа JSON» я должен буду считать эти данные на сторону клиента, парсировать их и изменив то, что мне надо вернуть «на базу». И скажу прямо такой подход не дает никакого профита!
Куда интереснее передать серверу js-выражение, меняющее все что надо, на его стороне. Атомарно меняющее. Но для этого надо что бы:
- сервер поддерживал такие (не реляционные) выражения
- сервер считал поле JSONB не набором JSON-данных, а коллекцией документов
И признаться, я сильно сомневаюсь, что разрабы PostgreSQL на это пойдут. Уж хотя бы по причине архитектурных сложностей.
И это я еще не затрагиваю такие концепции как map-reduce. Потому что пока речь у нас шла об операциях с коллекциями документов хранящихся в единичном поле JSONB. А вот как только мне понадобится сделать распределенный запрос к набору таких полей (быть может в разных таблицах).... вот тогда начнется настоящее веселье
Исходная версия k0valenk0_igor, :
Это может оказаться совсем не одним и тем же. Предположим я положил коллекцию документов в поле JSONB. Но с точки зрения PostgreSQL это может оказаться вовсе не коллекция документов, а массив данных типа JSON! И разница будет очень существенна: в поддерживаемых операциях на стороне сервера.
Я, предположим, захочу во всех документах изменить определенных атрибут. Так вот, с точки зрения «поле JSONB - это набор данных типа JSON» я должен буду считать эти данные на сторону клиента, парсировать их и изменив то, что мне надо вернуть «на базу». И скажу прямо такой подход не дает никакого профита!
Куда интереснее передать серверу js-выражение, меняющее все что надо, на его стороне. Атомарно меняющее. Но для этого надо что бы:
- сервер поддерживал такие (не реляционные) выражения
- сервер считал поле JSONB не набором JSON-данных, а коллекцией документов
И признаться, я сильно сомневаюсь, что разрабы PostgreSQL на это пойдут. Уж хотя бы по причине архитектурных сложностей.