我的模型UserPost
包含JSONB列posts
,其中存储的数据将是JSON,其中user_id
为关键字(动态),某些属性为值。考虑到我有多个user_posts
记录,如下所示,
记录1:
id: 1
posts: {
1: { message: 'some', posted_at: 'sometime', attachment_url: 'some_url' },
3: { message: 'some', posted_at: 'sometime', attachment_url: 'some_url' }
}
记录2:
id: 2
posts: {
{
2: { message: 'some', posted_at: 'sometime', attachment_url: 'some_url' },
5: { message: 'some', posted_at: 'sometime', attachment_url: 'some_url' }
}
记录3:
id: 3
posts: {
{
1: { message: 'some', posted_at: 'sometime', attachment_url: 'some_url' },
2: { message: 'some', posted_at: 'sometime', attachment_url: 'some_url' }
}
我user_ids
说2, 5
,必须提取UserPost
条记录,我该怎么做?
答案 0 :(得分:0)
找到它,
单键:
UserPost.where("posts ? '2'")
键数组:
UserPost.where('posts ?| array[:keys]', keys: ['1', '2'])