Ihr Problem ist, dass Mongoids has_many
hat
hinterlässt nichts im übergeordneten Dokument, sodass es keine Abfragen im übergeordneten Dokument gibt, die für Sie nützlich sind. Der belongs_to :user
jedoch in Ihrer Task
fügt eine :user_id
hinzu Feld zu den tasks
Sammlung. Das lässt Sie mit schrecklichen Dingen wie diesen zurück:
user_ids = Task.all.distinct(:user_id)
users = User.where(:id => user_ids).limit(10)
Natürlich, wenn Sie embeds_many :tasks
hätten
statt has_many :tasks
dann könnten Sie die :tasks
abfragen innerhalb der users
Sammlung, wie Sie möchten. OTOH, das würde wahrscheinlich andere Dinge kaputt machen.
Wenn Sie die Aufgaben getrennt (d. h. nicht eingebettet) halten müssen, können Sie einen Zähler in User
einrichten um die Anzahl der Aufgaben im Auge zu behalten, und dann könnten Sie Dinge sagen wie:
User.where(:num_tasks.gt => 0).limit(10)