Váš problém je, že Mongoid has_many
nezanechává nic v nadřazeném dokumentu, takže v nadřazeném dokumentu nejsou žádné dotazy, které by pro vás mohly udělat něco užitečného. Nicméně belongs_to :user
ve vašem Task
přidá :user_id
do tasks
sbírka. Zůstanou vám tak strašné věci:
user_ids = Task.all.distinct(:user_id)
users = User.where(:id => user_ids).limit(10)
Samozřejmě, pokud jste měli embeds_many :tasks
místo has_many :tasks
pak se můžete zeptat na :tasks
uvnitř users
sbírejte, jak chcete. OTOH, tohle by pravděpodobně rozbilo jiné věci.
Pokud potřebujete ponechat úkoly oddělené (tj. ne vložené), můžete nastavit počítadlo v User
sledovat počet úkolů a pak můžete říkat věci jako:
User.where(:num_tasks.gt => 0).limit(10)