2011-04-04 5 views
2

Existe-t-il un moyen privilégié de vérifier les documents existants via mongoid? Si je fais Model.find('id')' et que l'id est nul ou que le document n'existe pas, il lance une exception ... Je veux qu'il renvoie un tableau vide.Mongoid: recherche de documents existants/documents incorporés

Si je fais Model.where(:id => 'id'), et l'id est nul, il retourne tous les documents ... Je veux aussi qu'il retourne un tableau vide.

puis Model.criteria(:id => 'id').to_a, pour une raison quelconque, ne renvoie jamais un résultat, même avec un ID d'objet valide. pas sûr de ce qui se passe là-bas ...

mais fondamentalement avec activerecord je voudrais simplement utiliser la méthode de recherche exists?, donc je suis à la recherche de l'alternative mongoid.

+0

Qu'en est-Model.find ('id') sauvetage []? – Roman

+0

Je suppose que c'est une possibilité, mais des exceptions différentes sont lancées selon que l'ID est nul ou si un objet n'est pas trouvé. il ne joue pas bien dans mes vues pour des choses comme 'Model.find ('id')? 'id': 'rien trouvé'. – brewster

+0

Qu'en est-il de Model.where (: id => id.to_s)? – Roman

Répondre

2

Dans MongoId 2.0, la suite semble faire ce que vous voulez:

User.all.for_ids('4d9ad01de1607c4bc000001a').entries 
+0

qui fonctionne très bien. Merci! – brewster

Questions connexes