В моем приложении Rails 5 я использую гем Ahoy, который использует поле jsonb (называемое properties
) что я не знаю, как запросить.
Пример данных в поле properties
:
"{\"id\":\"11\"}"
Я пытаюсь сделать следующее:
- Найдите записи, созданные за последние семь дней (используя поле
time
) - Сгруппируйте записи по
id
в полеproperties
- Упорядочить записи, исходя из того, у кого
id
было больше всего записей
Я пробовал это:
@foo = Ahoy::Event.where(name: "Viewed Product").where(time: 7.days.ago..Time.now).group("properties(id)").order('COUNT("properties(id)") DESC')
но я получил ошибку, PG::UndefinedColumn: ERROR: column "properties(id)" doe not exist
Я нашел этот похожий вопрос в проблемах для драгоценного камня, поэтому я попытался взломать запрос на части:
@foo = Ahoy::Event.where(name: "Viewed Product").where(time: 7.days.ago..Time.now)
@foo.group("properties REGEXP '[{,]\"id\"...).count
но тогда моя IDE выдает ошибку unterminated string meets the end of file
.
Может кто-нибудь, пожалуйста, помогите мне определить, что я делаю неправильно?