85 votes

Sélectionner où non null ou vide dans mongoid

J'ai modifié un modèle pour qu'il intègre un nouveau champ, tel que ...

field :url, :type => String

J'utilise activeadmin. Ainsi, lorsque je crée une nouvelle entrée, @model.url est vide et que, dans les entrées créées avant la modification du schéma, il est nul. Comment choisir les deux? J'ai essayé:

 # 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 
 

Ou, s'il existe une meilleure pratique pour ce type de scénario, veuillez me le faire savoir.

96voto

Kyle Points 13512

Essayer

 Model.where(:url.ne => "", :url.exists => true).count
 

voir Opérateurs de symboles mongoïdes

88voto

artmees Points 1776

Essayer

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X