Si bien no es tan limpio como simplemente poder llamar a .distinct
en un criterio, esta solución da los resultados esperados:
Person.find(Person.nearby(location_in_new_york, 1).distinct(:_id))
Sin embargo, esto no funciona (como está escrito) como un alcance, por lo que tendría que convertirlo en un método de clase. Personalmente, consideraría agregar un parche a mongoid para agregar un .unique
método que hace lo que quiere (ya que MongoDB es responsable de devolver valores de campo en lugar de documentos cuando usa su operador distinto:http://www.mongodb.org/display/DOCS/Aggregation
)