如何做mongoid'not_in''大于'查询

时间:2014-01-09 04:13:05

标签: ruby mongodb cucumber mongoid database

如果我想搜索 属性大于100的mongoid模型,我会这样做。

Model.where({'price' => {'$gt' => 100}})

如何在没有属性大于100的情况下搜索mongoid模型

试过这个但失败了。

Model.not_in({'price' => [{'$gt' => 100}]})

其他信息:

在一天结束时,我想像这样进行查询:

criteria = {
    'price' => [{'$gt' => 100}],
    'size'  => 'large',
    'brand' => 'xyz'    
}

Model.not_in(criteria)

因为标准是动态创建的。

3 个答案:

答案 0 :(得分:4)

没有属性大于100的模型=属性小于或等于100的模型

Model.where({'price' => {'$lte' => 100}})

答案 1 :(得分:2)

试试这个

 Model.where(:price.lte => 100,:size.ne => 'large',:brand.ne => 'xzy')

答案 2 :(得分:0)

尝试使用.ne()(非等于)运算符

Model.where({:price.lte => 100}).ne({:size => 'large', :brand => 'xzy'})

您还可以在http://mongoid.org/en/origin/docs/selection.html#negation

找到Mongoid文档