Även om det inte är så rent som att bara kunna ringa .distinct
på ett kriterium ger den här lösningen de förväntade resultaten:
Person.find(Person.nearby(location_in_new_york, 1).distinct(:_id))
Detta fungerar dock inte (som skrivet) som ett omfång, så du måste göra det till en klassmetod. Personligen skulle jag överväga att lägga till en patch till mongoid för att lägga till en .unique
metod som gör vad du vill (eftersom MongoDB är ansvarig för att returnera fältvärden istället för dokument när du använder dess distinkta operator:http://www.mongodb.org/display/DOCS/Aggregation
)