Виберіть, де не має значення null або порожнє в mongoid


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)
Еккштейн


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.