Ditt problem är att Mongoids has_many
lämnar inget i det överordnade dokumentet så det finns inga frågor om det överordnade dokumentet som kommer att göra något användbart för dig. Men belongs_to :user
i din Task
kommer att lägga till en :user_id
fältet till tasks
samling. Det lämnar dig med hemska saker som detta:
user_ids = Task.all.distinct(:user_id)
users = User.where(:id => user_ids).limit(10)
Naturligtvis, om du hade embeds_many :tasks
istället för has_many :tasks
sedan kan du fråga :tasks
inuti users
samling som du vill. OTOH, det här skulle förmodligen bryta andra saker.
Om du behöver hålla uppgifterna åtskilda (d.v.s. inte inbäddade) kan du ställa in en räknare i User
för att hålla koll på antalet uppgifter och då kan man säga saker som:
User.where(:num_tasks.gt => 0).limit(10)