Active Record查询数组字段中的值

时间:2012-08-09 17:22:52

标签: ruby-on-rails-3 mongodb activerecord

我在Rails 3的MongoDB数据库中有一个名为“Stat”的表。

在该表中,有一个名为“services”的数组字段。

我想找到所有包含值“lights”的服务数组的Stat。

我想做这样的事情:

@stats = Stat.all
@stats1 =  @stats.where("services contains lights")
Rails.logger.info "result:  #{@stats1.count}  " 

我尝试过各种各样的东西并广泛搜索它,发现了一些线索,但似乎没有任何效果。我有四条记录应该匹配此查询,但上面返回一个零集。

我想在rails 3 / mongo中做什么?

2 个答案:

答案 0 :(得分:2)

试试这个,

@stats = Stat.all

@stats1 =  @stats.where("'lights' = ANY (services)")

答案 1 :(得分:1)

好的,我找到了这个问题的答案:

@stats = @ stats.where(:services.in => ['lights'])

我也发现,反过来是:

@stats = @ stats.where(:services.nin => ['lights'])

“nin”而不是“in”