Vấn đề của bạn là has_many của Mongoid
không để lại bất kỳ thứ gì trong tài liệu mẹ nên không có truy vấn nào trên tài liệu mẹ sẽ làm bất cứ điều gì hữu ích cho bạn. Tuy nhiên, belongs_to :user trong Task của bạn sẽ thêm một :user_id trường tasks thu thập. Điều đó để lại cho bạn những điều khủng khiếp như thế này:
user_ids = Task.all.distinct(:user_id)
users = User.where(:id => user_ids).limit(10)
Tất nhiên, nếu bạn có embeds_many :tasks
thay vì has_many :tasks thì bạn có thể truy vấn :tasks bên trong users bộ sưu tập như bạn muốn. OTOH, điều này có thể sẽ phá vỡ những thứ khác.
Nếu bạn cần giữ các tác vụ riêng biệt (tức là không được nhúng) thì bạn có thể thiết lập bộ đếm trong User để theo dõi số lượng nhiệm vụ và sau đó bạn có thể nói những điều như:
User.where(:num_tasks.gt => 0).limit(10)