To, co vidíte, je přesně správné z definice asociací a základního dotazu, který odpovídá klauzuli „in“. Osvěžte si představu o „in“ jako o „v sadě“ rozlišných objekty http://en.wikipedia.org/wiki/Set_(matematika) Načtení pro seznam uživatelů obsahuje základní dotaz na kolekci uživatelů s klauzulí $in, viz http://docs.mongodb.org/manual/reference/operator/query/in/
Pro přidružení @task.userlist získáte pouze dokumenty v kolekci User, které odpovídají klauzuli $in, kolekce User je primárním „předmětem“. Je zde významný sémantický rozdíl od
User.where(:user_id.in => self.user_id)
versus
self.user_id.collect |user_id| do User.where(:user_id => user_id).first; end
Abyste získali „duplikáty“ z předchozího dotazu, museli byste mít duplicitní dokumenty v kolekci uživatelů, vážně.;-)
Doufám, že vám to pomůže pochopit.