Twój problem polega na tym, że has_many
firmy Mongoid
nie pozostawia niczego w dokumencie nadrzędnym, więc nie ma żadnych zapytań w dokumencie nadrzędnym, które zrobią coś użytecznego dla Ciebie. Jednak belongs_to :user
w Twoim Task
doda :user_id
pole do tasks
kolekcja. To pozostawia cię z takimi przerażającymi rzeczami:
user_ids = Task.all.distinct(:user_id)
users = User.where(:id => user_ids).limit(10)
Oczywiście, jeśli masz embeds_many :tasks
zamiast has_many :tasks
wtedy możesz zapytać o :tasks
wewnątrz users
kolekcja, jak chcesz. OTOH, to prawdopodobnie zepsułoby inne rzeczy.
Jeśli chcesz zachować oddzielne zadania (tj. Nie osadzone), możesz ustawić licznik w User
aby śledzić liczbę zadań, a następnie możesz powiedzieć takie rzeczy jak:
User.where(:num_tasks.gt => 0).limit(10)