Embora não seja tão limpo quanto apenas poder chamar
.distinct
em um critério, esta solução alternativa fornece os resultados esperados:Person.find(Person.nearby(location_in_new_york, 1).distinct(:_id))
Isso não funciona (como escrito) como um escopo, no entanto, você teria que torná-lo um método de classe. Pessoalmente, eu gostaria de adicionar um patch ao mongoid para adicionar um
.unique
método que faz o que você deseja (já que o MongoDB é responsável por retornar valores de campo em vez de documentos quando você usa seu operador distinto:http://www.mongodb.org/display/DOCS/Aggregation
)