4

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

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

我想找到所有具有包含值 "lights" 的 services 数组的 Stats 。

我想做这样的事情:

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

我尝试了各种方法并在 Google 上进行了广泛搜索,找到了一些线索,但似乎没有任何效果。我有四个记录应该匹配这个查询,但上面返回一个零集。

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

4

2 回答 2

3

试试这个,

@stats = Stat.all

@stats1 =  @stats.where("'lights' = ANY (services)")
于 2017-08-04T08:58:52.237 回答
1

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

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

而且我还通过四处寻找发现相反的是:

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

nin代替in

于 2012-10-11T20:14:13.003 回答