Mongoid:如何查询value为nil的所有对象?

时间:2012-01-22 17:29:48

标签: ruby-on-rails mongodb mongoid

我很难做一些事情,比如:

Something.where(:field => nil) 

Something.where(:field => { '$eq' => nil })

在Mongoid中处理这个问题的正确方法是什么?

1 个答案:

答案 0 :(得分:19)

这是正确的方法。例如,要查找引擎为nil的汽车,请使用:

# Cars that have a _nil_ engine.
Car.where(:engine => nil)

如果您正在尝试查找字段的缺席(而不是设置为nil的字段),请使用$exists谓词:

# Cars that lack an engine entirely.
Car.where(:engine.exists => false)

请注意,将字段foo设置为nil且缺少名为foo的字段是两回事。