Seu problema é que o
has_many
do Mongoid
não deixa nada no documento pai, portanto, não há consultas no documento pai que farão algo útil para você. No entanto, o belongs_to :user
em sua Task
adicionará um :user_id
campo para as tasks
coleção. Isso deixa você com coisas horríveis como esta:user_ids = Task.all.distinct(:user_id)
users = User.where(:id => user_ids).limit(10)
Claro, se você tivesse
embeds_many :tasks
em vez de has_many :tasks
então você pode consultar o :tasks
dentro dos users
coleção como você deseja. OTOH, isso provavelmente quebraria outras coisas. Se você precisar manter as tarefas separadas (ou seja, não incorporadas), poderá configurar um contador em
User
para acompanhar o número de tarefas e, em seguida, você pode dizer coisas como:User.where(:num_tasks.gt => 0).limit(10)