cba*_*ass 3 ruby postgresql ruby-on-rails rails-postgresql ruby-on-rails-4
我的迁移看起来像这样:
create table :posts do |t|
t.string :tags, array: true, default: []
end
Run Code Online (Sandbox Code Playgroud)
如何在所有帖子中获取存储在标签下的所有唯一标签的数组?
您可以在数据库中执行以下操作:
select distinct unnest(tags) from posts
Run Code Online (Sandbox Code Playgroud)
因此,如果您只想要字符串,那么您可以直接访问数据库:
tags = Post.connection.select_rows('select distinct unnest(tags) from posts').flatten
Run Code Online (Sandbox Code Playgroud)
如果tags阵列或许多阵列之间存在很多重叠,那么应该更快,然后将所有阵列拉出数据库并在Ruby中进行数据争用.