Anche se non è così pulito come poter chiamare .distinct
su un criterio, questa soluzione fornisce i risultati attesi:
Person.find(Person.nearby(location_in_new_york, 1).distinct(:_id))
Tuttavia, questo non funziona (come scritto) come ambito, quindi dovresti renderlo un metodo di classe. Personalmente, cercherei di aggiungere una patch a mongoid per aggiungere un .unique
metodo che fa quello che vuoi (poiché MongoDB è responsabile della restituzione dei valori dei campi invece dei documenti quando usi il suo operatore distinto:http://www.mongodb.org/display/DOCS/Aggregazione
)