【发布时间】:2021-04-02 21:43:45
【问题描述】:
我在 Rails 中有一个表配置文件的 jsonb 列,其结构如下
add_column :profile, :properties, :jsonb, default: {}
user.build_profile(
properties: {
languages: [
{name: "German", level: 3},
{name: "Russian", level: 2},
{name: "English", level: 3}
],
skills: ['Alpha', 'Beta', 'Gamma']
}
)
user.build_profile(
properties: {
languages: [
{name: "German", level: 2},
{name: "Russian", level: 3},
{name: "Spanish", level: 3}
],
skills: ['Alpha','Beta']
}
)
user.build_profile(
properties: {
languages: [
{name: "Italian", level: 2},
{name: "Spanish", level: 3}
],
skills: ['Gamma']
}
)
我可以像这样检索一种语言
@profiles.where("properties @> ?", {'languages': [{'name':'German'}] }.to_json)
和多种技能(x OR y)这样的
@profiles.where("properties -> 'skills' ?| array[:skills]", skills: ['Alpha', 'Beta'])
但我需要检索多种语言查询术语德语和俄语
我该如何实现?
提前致谢
【问题讨论】:
标签: ruby-on-rails postgresql jsonb