Mặc dù không sạch bằng chỉ có thể gọi .distinct
trên một tiêu chí, cách giải quyết này mang lại kết quả mong đợi:
Person.find(Person.nearby(location_in_new_york, 1).distinct(:_id))
Tuy nhiên, điều này không hoạt động (như đã viết) như một phạm vi, vì vậy bạn phải đặt nó trở thành một phương thức lớp. Cá nhân tôi sẽ xem xét thêm một bản vá vào mongoid để thêm một .unique
phương thức thực hiện những gì bạn muốn (vì MongoDB chịu trách nhiệm trả về giá trị trường thay vì tài liệu khi bạn sử dụng toán tử riêng biệt của nó:http://www.mongodb.org/display/DOCS/Aggregation
)