Mat*_*ieu 7 postgresql json ruby-on-rails rails-postgresql jsonb
我有一个Deal模型,它具有一个名为'info'的属性,具有以下结构:
交易中的'info'栏内:
Deal1.info = [{"deal_id":"4","text1":"qqq","text2":"sqsq","image1":"sqqs","video1":"sqsq"},{"deal_id":"5","text1":"sqqs","text2":"qq"}]
# no image here inside the json
Deal2.info =
[{"deal_id":"4","text1":"qqq","video1":"sqsq"},{"deal_id":"5","text1":"sqqs","text2":"qq"}]
Run Code Online (Sandbox Code Playgroud)
该列在移民中被定义为json
add_column :deals, :info, :json, default: '[]'
Run Code Online (Sandbox Code Playgroud)
如何在jsonb中使用活动记录查询?
查找信息包含至少一个deal_id = 4的所有交易
找到infos包含的所有交易,以及一个名为'image1'的密钥的json块({})(它应该只输出Deal1,而不是deal2)
twm*_*loy 13
我有一个类似的列,我不得不将列类型从更改json为jsonb.
add_column :deals, :info, :jsonb, default: [], null: false, index: true
获取数据类型后,jsonb我能够执行此类型的activerecord查询.
Info.where('deals @> ?', '[{"deal_id":"4"}]')
我不太确定如何用activerecord(http://www.postgresql.org/docs/9.4/static/functions-json.html#FUNCTIONS-JSONB-OP-TABLE)来编写所有这些来实现你的第二个要点.
| 归档时间: |
|
| 查看次数: |
2582 次 |
| 最近记录: |