我试图从jsonb列payload
中选择值。 json的格式类似于
{"id" : 123456, "email": "ben@email.com", "items" : [{}, {}, ...]}
使用ActiveRecord,我尝试使用ModelRecord.select("有效负载 - >>'电子邮件'")。正在返回所有和所有记录{{ 1}}。
我确定我做错了什么,或者我误解了正确的用法。
x86_64-pc-linux-gnu上的PostgreSQL 9.6.5 Rails 5.1.3
答案 0 :(得分:1)
你误解了正确的用法。
我正在尝试
ModelRecord.select("payload ->> 'email'")
并且正在返回所有记录[#<ModelRecord id: nil>, ... ]
这是AR的工作原理,AR将列映射到模型属性,payload
是一个jsonb列,因此没有正确映射。您的记录有效,您可以通过简单的方式访问select
- ed属性,请尝试:
col = ModelRecord.select("payload ->> 'email'")
col.first.payload
答案 1 :(得分:0)
我不确定我是否理解了您的问题,但我认为您正试图获取唯一的电子邮件列,如果是,您可以这样做。
tools:context="com.example.andriod.justjava.MainActivity"
希望它有所帮助。