Il tuo problema è che has_many di Mongoid
non lascia nulla nel documento principale, quindi non ci sono query sul documento principale che faranno qualcosa di utile per te. Tuttavia, il belongs_to :user nel tuo Task aggiungerà un :user_id campo alle tasks collezione. Questo ti lascia con cose orribili come questa:
user_ids = Task.all.distinct(:user_id)
users = User.where(:id => user_ids).limit(10)
Ovviamente, se avessi embeds_many :tasks
invece di has_many :tasks quindi potresti interrogare :tasks all'interno degli users raccolta come vuoi. OTOH, questo probabilmente romperebbe altre cose.
Se hai bisogno di mantenere le attività separate (cioè non incorporate), puoi impostare un contatore in User per tenere traccia del numero di attività e quindi potresti dire cose come:
User.where(:num_tasks.gt => 0).limit(10)