Postgres hstore,如何查询包含值的数组?

时间:2016-02-18 18:47:05

标签: ruby-on-rails postgresql hstore

[这里的所有代码都是样本]我有Book模型,信息字段为hstore。

class Book < ActiveRecord::Base
  serialize :info, ActiveRecord::Coders::NestedHstore
end

并且信息字段填充如下:

info: {"tags" => ["tag one", "tag two"]}

我需要一个查询,我可以找到包含标签的图书&#34;标记一个&#34;。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:1)

您可能根本不想在此处使用willMoveFromView列。由于hstore将值存储为纯文本,因此您需要执行以下操作:

hstore

看起来像个不错的想法,直到你意识到你正在用逗号分隔的字符串进行全文搜索。

相反,您可能希望使用Book.where("WHERE info->'tags' LIKE '%?%'", "bestseller"); 表和tags联接表,这是一种很好的方法。