我很难做一些事情,比如:
Something.where(:field => nil)
或
Something.where(:field => { '$eq' => nil })
在Mongoid中处理这个问题的正确方法是什么?
答案 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
的字段是两回事。