Mongoid: как запросить все объекты, где значение равно нулю? - PullRequest
12 голосов
/ 22 января 2012

Мне трудно делать что-то вроде:

Something.where(:field => nil) 

или

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

Как правильно обращаться с этим в Mongoid?

1 Ответ

19 голосов
/ 22 января 2012

Это правильный способ сделать это.Например, чтобы найти автомобили с двигателем 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 - это две разные вещи.

...