MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Trouver des lignes distinctes dans la portée avec mongoid

Bien que ce ne soit pas aussi propre que de pouvoir simplement appeler .distinct sur un critère, cette solution de contournement donne les résultats attendus :

Person.find(Person.nearby(location_in_new_york, 1).distinct(:_id))

Cependant, cela ne fonctionne pas (tel qu'il est écrit) en tant que portée, vous devez donc en faire une méthode de classe. Personnellement, je chercherais à ajouter un patch à mongoid pour ajouter un .unique méthode qui fait ce que vous voulez (puisque MongoDB est chargé de renvoyer les valeurs des champs au lieu des documents lorsque vous utilisez son opérateur distinct :http://www.mongodb.org/display/DOCS/Aggregation )