首页 文章

Active Record查询数组字段中的值

提问于
浏览
1

我在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 回答

  • 1

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

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

    而且我也发现通过四处寻找反向是:

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

    “nin”而不是“in”

  • 1

    试试这个,

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

相关问题