I když to není tak čisté, jako kdyby bylo možné volat .distinct
na základě kritérií poskytuje toto zástupné řešení očekávané výsledky:
Person.find(Person.nearby(location_in_new_york, 1).distinct(:_id))
Toto však nefunguje (jak je napsáno) jako rozsah, takže byste z toho museli udělat metodu třídy. Osobně bych se podíval na přidání patche do mongoidu, aby se přidal .unique
metoda, která dělá to, co chcete (protože MongoDB je zodpovědná za vrácení hodnot polí místo dokumentů, když použijete svůj odlišný operátor:http://www.mongodb.org/display/DOCS/Aggregation
)