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)