Mongoid: как запросить для всех объектов, где значение равно нулю? Мне сложно делать что-то вроде: Something.where(:field => nil) или Something.where(:field => { '$eq' => nil }) Какой правильный способ справиться с этим в Mongoid? Ответ 1 Это правильный способ сделать это. Чтобы найти автомобили с двигателем 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 - это две разные вещи.
Ответ 1 Это правильный способ сделать это. Чтобы найти автомобили с двигателем 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 - это две разные вещи.