ruby-on-rails - Mongoid:如何查询值为 nil 的所有对象?

标签 ruby-on-rails mongodb mongoid

我在做以下事情时遇到了困难:

Something.where(:field => nil) 

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

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

最佳答案

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

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

如果您要查找字段的 absence(而不是设置为 nil 的字段),请使用 $exists 谓词:

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

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

关于ruby-on-rails - Mongoid:如何查询值为 nil 的所有对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8963054/

相关文章:

ruby-on-rails - Puma 和 Nginx 502 Bad Gateway 错误(Ubuntu 服务器 14.04)

javascript - Rails 将数据从 Controller 传递到 javascript

javascript - $project 上的 mongo-aggregation : apply regex grouping, 字符串处理

php - 从子数组 mongo 文档中删除元素

node.js - 正确的持久化技术

ruby-on-rails - Mongoid 无法确定要设置的反向外键

ruby-on-rails - Rails 参数人口

ruby-on-rails - Rails request.referer 在 Internet Explorer 中不起作用

ruby-on-rails - 为什么我得到 "The action ' 索引'找不到 PeopleController”?

ruby-on-rails - MongoId 与哈希字段 : values are different with MongoDB and with Rails