Chociaż nie jest tak czysty, jak po prostu możliwość wywołania .distinct
na kryterium, to obejście daje oczekiwane wyniki:
Person.find(Person.nearby(location_in_new_york, 1).distinct(:_id))
Nie działa to jednak (jak napisano) jako zakres, więc musisz zrobić z tego metodę klasy. Osobiście rozważyłbym dodanie łatki do mongoid, aby dodać .unique
metoda, która robi to, co chcesz (ponieważ MongoDB odpowiada za zwracanie wartości pól zamiast dokumentów, gdy używasz odrębnego operatora:http://www.mongodb.org/display/DOCS/Agregacja
)