2016-11-08 2 views
0

Я пытаюсь построить запрос в массиве с помощью массивов, но он продолжает говорить мне, что оператор не поддерживается.Найти массив с помощью arrayjs

Этот запрос работает:

SELECT * FROM my_table WHERE data->'items' @> '[{"foo": "bar"}]'; 

где data является jsonb поле и items массив объектов. Мой massivejs запрос:

{ 'data #>> {items} @>': '[{ \"foo\": \"bar\" }]' } 

но массивное говорит мне @> оператор не существует.

Я понимаю, что могу выполнить необработанный SQL, но я создаю запрос с поисковыми вызовами, сортировкой и другими условиями запроса, поэтому я бы предпочел не перестроить все это, если я смогу его избежать.

Есть ошибки в моем запросе? Это что-то массивное даже поддерживает?

+0

Это должно поддерживаться с версии 2.2.0, выпущенной в начале 2016 года. – dmfay

ответ

0

Я не думаю, что massivejs поддерживает jsonb-операторы.

Ваш запрос SQL-correct. И я предполагаю, что вам придется делать необработанный SQL на этом.

Я только что прочитал документы API, и это идет в мою сторону, но Возможно, я что-то пропустил.

+1

У него есть частичная поддержка jsonb, но это серая область. И наше использование несовместимо с 'findDoc'. –