在我的Rails 5应用程序中,我使用Ahoy gem,它使用了一个我不知道如何查询的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
我在gem的问题中找到了这个somewhat similar question,所以我尝试将查询分成几部分:
@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
。
有人可以帮我确定我做错了吗?
答案 0 :(得分:0)
如果你正在使用PostgreSQL,我相信你必须像这样引用json列:
.group("properties ->> 'id'")