Votre problème est que has_many
de Mongoid
ne laisse rien dans le document parent, il n'y a donc aucune requête sur le document parent qui vous sera utile. Cependant, le belongs_to :user
dans votre Task
ajoutera un :user_id
champ vers les tasks
le recueil. Cela vous laisse avec des choses horribles comme ceci :
user_ids = Task.all.distinct(:user_id)
users = User.where(:id => user_ids).limit(10)
Bien sûr, si vous aviez embeds_many :tasks
au lieu de has_many :tasks
alors vous pouvez interroger le :tasks
à l'intérieur des users
collecte comme vous le souhaitez. OTOH, cela casserait probablement d'autres choses.
Si vous avez besoin de garder les tâches séparées (c'est-à-dire non intégrées), vous pouvez configurer un compteur dans User
pour garder une trace du nombre de tâches, puis vous pourriez dire des choses comme :
User.where(:num_tasks.gt => 0).limit(10)