Выберите, где не ноль или пустой в монгоиде


80

Я изменил модель, чтобы она включала новое поле, например ...

field :url, :type => String

Я использую activeadmin, поэтому, когда я создаю новую запись, @model.urlона пуста, а в записях, созданных до изменения схемы, она равна нулю. Как выбрать оба? Я пытался:

# Returns nils and strings
Model.where(:url.ne => "").count 

# Returns strings and ""
Model.where(:url.ne => nil).count

# Returns strings, nils and ""
Model.where(:url.ne => ["", nil]).count 

Или, если есть лучшая практика для такого сценария, дайте мне знать.

Ответы:


85

Пытаться

Model.where(:url.nin => ["", nil]).count

Работает даже когда url = nil


Я согласен, это настоящий ответ и должен быть принятым ответом на этот вопрос.
Куинн

Если вы просто хотите проверить записи, где поле не равно нулю:Model.where(:field.ne=>nil)
Ekkstein


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.