我有一个场景,对于一个项目,我正在将其“ active_at”的日期记录到存储在JSONB列中的数组中。
所以数据看起来像这样:
active_at:
{"dates"=>
["2018-07-22",
"2018-09-05",
"2018-09-06",
"2018-09-07",
"2018-09-14",
"2018-09-15",
"2018-09-16",
"2018-10-20",
"2018-10-21",
"2018-10-30"]}
我可以按以下方式成功查询列中的数组中的日期匹配:
@item = Item.where('active_at @> ?', {dates: '2018-10-20'.split}.to_json)
但是,我现在只需要查询数组中第一个条目的匹配项。数组中的条目始终按日期顺序排列,因为新值会附加到数组的末尾。
我已经尝试过类似的操作,但是没有任何乐趣:
@item = Item.where('active_at @> ?', {dates['first']: '2018-10-20'.split}.to_json)
@item = Item.where('active_at @> ?', {dates.first: '2018-10-20'.split}.to_json)
答案 0 :(得分:2)